// $ANTLR 3.0.1 /home/arthit/projects/siit-commons/src/TCC.g 2008-07-07 02:51:49

package net.siit.ling;


import org.antlr.runtime.*;
import java.util.Stack;
import java.util.List;
import java.util.ArrayList;


import org.antlr.runtime.tree.*;

/**
 * Thai Character Cluster
 */
public class TCCParser extends Parser {
    public static final String[] tokenNames = new String[] {
        "<invalid>", "<EOR>", "<DOWN>", "<UP>", "TCC", "ATCC", "BTCC", "ADIGIT", "TDIGIT", "DIGITS", "SYMBOL", "SPACE", "TAB", "HSPACE", "NEWLINE", "FEED", "VSPACE", "TONE", "A", "HANAKAT", "AA", "AM", "I", "II", "UE", "UEE", "U", "UU", "E", "AE", "O", "MUAN", "MALAI", "LAKKHANGYAO", "RU", "LU", "PAIYANNOI", "PHINTHU", "YAMOK", "TAIKHU", "THANTHAKHAT", "NIKHAHIT", "YAMAKKAN", "FONGMAN", "ANGKHANKHU", "KHOMUT", "KAI", "KHAI", "KHUAT", "KHWAI", "KHON", "RAKHANG", "NGU", "CHAN", "CHING", "CHANG", "SO", "CHOE", "YING", "CHADA", "PATAK", "THAN", "NANGMONTHO", "PHUTHAO", "NEN", "DEK", "TAO", "THUNG", "THAHAN", "THONG", "NU", "BAIMAI", "PLA", "PHUNG", "FA", "PHAN", "FAN", "SAMPHAO", "MA", "YAK", "RUA", "LING", "WAEN", "SALA", "RUSI", "SUA", "HIP", "CHULA", "ANG", "NOKHUK"
    };
    public static final int ADIGIT=7;
    public static final int LU=35;
    public static final int DEK=65;
    public static final int DIGITS=9;
    public static final int FAN=76;
    public static final int BTCC=6;
    public static final int CHAN=53;
    public static final int ANG=88;
    public static final int CHADA=59;
    public static final int YAMAKKAN=42;
    public static final int FONGMAN=43;
    public static final int SPACE=11;
    public static final int EOF=-1;
    public static final int HANAKAT=19;
    public static final int PHUNG=73;
    public static final int TCC=4;
    public static final int MA=78;
    public static final int CHING=54;
    public static final int YAK=79;
    public static final int UU=27;
    public static final int II=23;
    public static final int FA=74;
    public static final int THAN=61;
    public static final int HIP=86;
    public static final int TAO=66;
    public static final int SAMPHAO=77;
    public static final int LAKKHANGYAO=33;
    public static final int THONG=69;
    public static final int UE=24;
    public static final int SUA=85;
    public static final int NGU=52;
    public static final int AA=20;
    public static final int NANGMONTHO=62;
    public static final int YAMOK=38;
    public static final int AE=29;
    public static final int ANGKHANKHU=44;
    public static final int PHINTHU=37;
    public static final int RAKHANG=51;
    public static final int NIKHAHIT=41;
    public static final int THUNG=67;
    public static final int AM=21;
    public static final int ATCC=5;
    public static final int E=28;
    public static final int MUAN=31;
    public static final int CHULA=87;
    public static final int A=18;
    public static final int SYMBOL=10;
    public static final int BAIMAI=71;
    public static final int NU=70;
    public static final int CHOE=57;
    public static final int NOKHUK=89;
    public static final int WAEN=82;
    public static final int KHON=50;
    public static final int O=30;
    public static final int I=22;
    public static final int PAIYANNOI=36;
    public static final int U=26;
    public static final int TAB=12;
    public static final int THANTHAKHAT=40;
    public static final int YING=58;
    public static final int UEE=25;
    public static final int RUA=80;
    public static final int PHUTHAO=63;
    public static final int FEED=15;
    public static final int LING=81;
    public static final int VSPACE=16;
    public static final int KHOMUT=45;
    public static final int HSPACE=13;
    public static final int TDIGIT=8;
    public static final int PLA=72;
    public static final int PATAK=60;
    public static final int NEWLINE=14;
    public static final int NEN=64;
    public static final int KHUAT=48;
    public static final int KHAI=47;
    public static final int THAHAN=68;
    public static final int SO=56;
    public static final int CHANG=55;
    public static final int TONE=17;
    public static final int RUSI=84;
    public static final int RU=34;
    public static final int TAIKHU=39;
    public static final int KAI=46;
    public static final int KHWAI=49;
    public static final int PHAN=75;
    public static final int SALA=83;
    public static final int MALAI=32;

        public TCCParser(TokenStream input) {
            super(input);
        }
        
    protected TreeAdaptor adaptor = new CommonTreeAdaptor();

    public void setTreeAdaptor(TreeAdaptor adaptor) {
        this.adaptor = adaptor;
    }
    public TreeAdaptor getTreeAdaptor() {
        return adaptor;
    }

    public String[] getTokenNames() { return tokenNames; }
    public String getGrammarFileName() { return "/home/arthit/projects/siit-commons/src/TCC.g"; }


    ArrayList list = new ArrayList();


    public static class s_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start s
    // /home/arthit/projects/siit-commons/src/TCC.g:226:1: s : ( tcc | abtcc )* ;
    public final s_return s() throws RecognitionException {
        s_return retval = new s_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        tcc_return tcc1 = null;

        abtcc_return abtcc2 = null;



        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:226:3: ( ( tcc | abtcc )* )
            // /home/arthit/projects/siit-commons/src/TCC.g:226:5: ( tcc | abtcc )*
            {
            root_0 = (CommonTree)adaptor.nil();

            // /home/arthit/projects/siit-commons/src/TCC.g:226:5: ( tcc | abtcc )*
            loop1:
            do {
                int alt1=3;
                switch ( input.LA(1) ) {
                case RU:
                case LU:
                case PAIYANNOI:
                case YAMOK:
                case FONGMAN:
                case ANGKHANKHU:
                case KHOMUT:
                case KAI:
                case KHAI:
                case KHUAT:
                case KHWAI:
                case KHON:
                case RAKHANG:
                case NGU:
                case CHAN:
                case CHING:
                case CHANG:
                case SO:
                case CHOE:
                case YING:
                case CHADA:
                case PATAK:
                case THAN:
                case NANGMONTHO:
                case PHUTHAO:
                case NEN:
                case DEK:
                case TAO:
                case THUNG:
                case THAHAN:
                case THONG:
                case NU:
                case BAIMAI:
                case PLA:
                case PHUNG:
                case FA:
                case PHAN:
                case FAN:
                case SAMPHAO:
                case MA:
                case YAK:
                case RUA:
                case LING:
                case WAEN:
                case SALA:
                case RUSI:
                case SUA:
                case HIP:
                case CHULA:
                case ANG:
                case NOKHUK:
                    {
                    alt1=1;
                    }
                    break;
                case E:
                    {
                    int LA1_3 = input.LA(2);

                    if ( ((LA1_3>=KAI && LA1_3<=NOKHUK)) ) {
                        alt1=1;
                    }
                    else if ( (LA1_3==EOF||(LA1_3>=A && LA1_3<=KHOMUT)) ) {
                        alt1=2;
                    }


                    }
                    break;
                case AE:
                    {
                    int LA1_4 = input.LA(2);

                    if ( (LA1_4==EOF||(LA1_4>=A && LA1_4<=KHOMUT)) ) {
                        alt1=2;
                    }
                    else if ( ((LA1_4>=KAI && LA1_4<=NOKHUK)) ) {
                        alt1=1;
                    }


                    }
                    break;
                case O:
                    {
                    int LA1_5 = input.LA(2);

                    if ( (LA1_5==EOF||(LA1_5>=A && LA1_5<=KHOMUT)) ) {
                        alt1=2;
                    }
                    else if ( ((LA1_5>=KAI && LA1_5<=NOKHUK)) ) {
                        alt1=1;
                    }


                    }
                    break;
                case MUAN:
                case MALAI:
                    {
                    int LA1_6 = input.LA(2);

                    if ( (LA1_6==EOF||(LA1_6>=A && LA1_6<=KHOMUT)) ) {
                        alt1=2;
                    }
                    else if ( ((LA1_6>=KAI && LA1_6<=NOKHUK)) ) {
                        alt1=1;
                    }


                    }
                    break;
                case A:
                case HANAKAT:
                case AA:
                case AM:
                case I:
                case II:
                case UE:
                case UEE:
                case U:
                case UU:
                case LAKKHANGYAO:
                case PHINTHU:
                case TAIKHU:
                case THANTHAKHAT:
                case NIKHAHIT:
                case YAMAKKAN:
                    {
                    alt1=2;
                    }
                    break;

                }

                switch (alt1) {
            	case 1 :
            	    // /home/arthit/projects/siit-commons/src/TCC.g:226:7: tcc
            	    {
            	    pushFollow(FOLLOW_tcc_in_s976);
            	    tcc1=tcc();
            	    _fsp--;

            	    adaptor.addChild(root_0, tcc1.getTree());

            	    }
            	    break;
            	case 2 :
            	    // /home/arthit/projects/siit-commons/src/TCC.g:226:13: abtcc
            	    {
            	    pushFollow(FOLLOW_abtcc_in_s980);
            	    abtcc2=abtcc();
            	    _fsp--;

            	    adaptor.addChild(root_0, abtcc2.getTree());

            	    }
            	    break;

            	default :
            	    break loop1;
                }
            } while (true);


            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end s

    public static class tcc_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start tcc
    // /home/arthit/projects/siit-commons/src/TCC.g:232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );
    public final tcc_return tcc() throws RecognitionException {
        tcc_return retval = new tcc_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token TONE8=null;
        Token TAIKHU12=null;
        Token TONE16=null;
        Token TONE20=null;
        Token E21=null;
        Token I23=null;
        Token E25=null;
        Token II27=null;
        Token E29=null;
        Token UEE31=null;
        Token E33=null;
        Token AE36=null;
        Token O39=null;
        c_return c3 = null;

        abv_return abv4 = null;

        kill_return kill5 = null;

        c_return c6 = null;

        abv_return abv7 = null;

        c_return c9 = null;

        sv_return sv10 = null;

        c_return c11 = null;

        c_return c13 = null;

        hanakat_c_return hanakat_c14 = null;

        c_return c15 = null;

        fv_return fv17 = null;

        lv_return lv18 = null;

        c_return c19 = null;

        c_return c22 = null;

        e_i_opt_return e_i_opt24 = null;

        c_return c26 = null;

        e_ii_opt_return e_ii_opt28 = null;

        c_return c30 = null;

        e_uee_opt_return e_uee_opt32 = null;

        c_return c34 = null;

        e_opt_return e_opt35 = null;

        c_return c37 = null;

        ae_opt_return ae_opt38 = null;

        c_return c40 = null;

        o_opt_return o_opt41 = null;

        sv_return sv42 = null;

        tsymbol_return tsymbol43 = null;


        CommonTree TONE8_tree=null;
        CommonTree TAIKHU12_tree=null;
        CommonTree TONE16_tree=null;
        CommonTree TONE20_tree=null;
        CommonTree E21_tree=null;
        CommonTree I23_tree=null;
        CommonTree E25_tree=null;
        CommonTree II27_tree=null;
        CommonTree E29_tree=null;
        CommonTree UEE31_tree=null;
        CommonTree E33_tree=null;
        CommonTree AE36_tree=null;
        CommonTree O39_tree=null;
        RewriteRuleTokenStream stream_II=new RewriteRuleTokenStream(adaptor,"token II");
        RewriteRuleTokenStream stream_TONE=new RewriteRuleTokenStream(adaptor,"token TONE");
        RewriteRuleTokenStream stream_E=new RewriteRuleTokenStream(adaptor,"token E");
        RewriteRuleTokenStream stream_UEE=new RewriteRuleTokenStream(adaptor,"token UEE");
        RewriteRuleTokenStream stream_AE=new RewriteRuleTokenStream(adaptor,"token AE");
        RewriteRuleTokenStream stream_TAIKHU=new RewriteRuleTokenStream(adaptor,"token TAIKHU");
        RewriteRuleTokenStream stream_O=new RewriteRuleTokenStream(adaptor,"token O");
        RewriteRuleTokenStream stream_I=new RewriteRuleTokenStream(adaptor,"token I");
        RewriteRuleSubtreeStream stream_o_opt=new RewriteRuleSubtreeStream(adaptor,"rule o_opt");
        RewriteRuleSubtreeStream stream_fv=new RewriteRuleSubtreeStream(adaptor,"rule fv");
        RewriteRuleSubtreeStream stream_c=new RewriteRuleSubtreeStream(adaptor,"rule c");
        RewriteRuleSubtreeStream stream_hanakat_c=new RewriteRuleSubtreeStream(adaptor,"rule hanakat_c");
        RewriteRuleSubtreeStream stream_e_uee_opt=new RewriteRuleSubtreeStream(adaptor,"rule e_uee_opt");
        RewriteRuleSubtreeStream stream_kill=new RewriteRuleSubtreeStream(adaptor,"rule kill");
        RewriteRuleSubtreeStream stream_lv=new RewriteRuleSubtreeStream(adaptor,"rule lv");
        RewriteRuleSubtreeStream stream_tsymbol=new RewriteRuleSubtreeStream(adaptor,"rule tsymbol");
        RewriteRuleSubtreeStream stream_ae_opt=new RewriteRuleSubtreeStream(adaptor,"rule ae_opt");
        RewriteRuleSubtreeStream stream_e_ii_opt=new RewriteRuleSubtreeStream(adaptor,"rule e_ii_opt");
        RewriteRuleSubtreeStream stream_abv=new RewriteRuleSubtreeStream(adaptor,"rule abv");
        RewriteRuleSubtreeStream stream_e_opt=new RewriteRuleSubtreeStream(adaptor,"rule e_opt");
        RewriteRuleSubtreeStream stream_e_i_opt=new RewriteRuleSubtreeStream(adaptor,"rule e_i_opt");
        RewriteRuleSubtreeStream stream_sv=new RewriteRuleSubtreeStream(adaptor,"rule sv");
        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:232:6: ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) )
            int alt7=15;
            switch ( input.LA(1) ) {
            case KAI:
            case KHAI:
            case KHUAT:
            case KHWAI:
            case KHON:
            case RAKHANG:
            case NGU:
            case CHAN:
            case CHING:
            case CHANG:
            case SO:
            case CHOE:
            case YING:
            case CHADA:
            case PATAK:
            case THAN:
            case NANGMONTHO:
            case PHUTHAO:
            case NEN:
            case DEK:
            case TAO:
            case THUNG:
            case THAHAN:
            case THONG:
            case NU:
            case BAIMAI:
            case PLA:
            case PHUNG:
            case FA:
            case PHAN:
            case FAN:
            case SAMPHAO:
            case MA:
            case YAK:
            case RUA:
            case LING:
            case WAEN:
            case SALA:
            case RUSI:
            case SUA:
            case HIP:
            case CHULA:
            case ANG:
            case NOKHUK:
                {
                switch ( input.LA(2) ) {
                case NIKHAHIT:
                    {
                    int LA7_8 = input.LA(3);

                    if ( (LA7_8==EOF||(LA7_8>=TONE && LA7_8<=TAIKHU)||LA7_8==NIKHAHIT||(LA7_8>=FONGMAN && LA7_8<=NOKHUK)) ) {
                        alt7=2;
                    }
                    else if ( (LA7_8==THANTHAKHAT||LA7_8==YAMAKKAN) ) {
                        alt7=1;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 8, input);

                        throw nvae;
                    }
                    }
                    break;
                case EOF:
                case TONE:
                case A:
                case AA:
                case AM:
                case E:
                case AE:
                case O:
                case MUAN:
                case MALAI:
                case LAKKHANGYAO:
                case PAIYANNOI:
                case YAMOK:
                case FONGMAN:
                case ANGKHANKHU:
                case KHOMUT:
                case KAI:
                case KHAI:
                case KHUAT:
                case KHWAI:
                case KHON:
                case RAKHANG:
                case NGU:
                case CHAN:
                case CHING:
                case CHANG:
                case SO:
                case CHOE:
                case YING:
                case CHADA:
                case PATAK:
                case THAN:
                case NANGMONTHO:
                case PHUTHAO:
                case NEN:
                case DEK:
                case TAO:
                case THUNG:
                case THAHAN:
                case THONG:
                case NU:
                case BAIMAI:
                case PLA:
                case PHUNG:
                case FA:
                case PHAN:
                case FAN:
                case SAMPHAO:
                case MA:
                case YAK:
                case RUA:
                case LING:
                case WAEN:
                case SALA:
                case RUSI:
                case SUA:
                case HIP:
                case CHULA:
                case ANG:
                case NOKHUK:
                    {
                    alt7=6;
                    }
                    break;
                case TAIKHU:
                    {
                    int LA7_10 = input.LA(3);

                    if ( (LA7_10==THANTHAKHAT||LA7_10==YAMAKKAN) ) {
                        alt7=1;
                    }
                    else if ( (LA7_10==EOF||(LA7_10>=TONE && LA7_10<=TAIKHU)||LA7_10==NIKHAHIT||(LA7_10>=FONGMAN && LA7_10<=NOKHUK)) ) {
                        alt7=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 10, input);

                        throw nvae;
                    }
                    }
                    break;
                case RU:
                case LU:
                    {
                    alt7=3;
                    }
                    break;
                case HANAKAT:
                    {
                    alt7=5;
                    }
                    break;
                case THANTHAKHAT:
                case YAMAKKAN:
                    {
                    alt7=1;
                    }
                    break;
                case I:
                case II:
                case UE:
                case UEE:
                case U:
                case UU:
                case PHINTHU:
                    {
                    int LA7_14 = input.LA(3);

                    if ( (LA7_14==THANTHAKHAT||LA7_14==YAMAKKAN) ) {
                        alt7=1;
                    }
                    else if ( (LA7_14==EOF||(LA7_14>=TONE && LA7_14<=TAIKHU)||LA7_14==NIKHAHIT||(LA7_14>=FONGMAN && LA7_14<=NOKHUK)) ) {
                        alt7=2;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 14, input);

                        throw nvae;
                    }
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 1, input);

                    throw nvae;
                }

                }
                break;
            case E:
                {
                int LA7_2 = input.LA(2);

                if ( ((LA7_2>=KAI && LA7_2<=NOKHUK)) ) {
                    switch ( input.LA(3) ) {
                    case KAI:
                    case KHAI:
                    case KHUAT:
                    case KHWAI:
                    case KHON:
                    case RAKHANG:
                    case NGU:
                    case CHAN:
                    case CHING:
                    case CHANG:
                    case SO:
                    case CHOE:
                    case YING:
                    case CHADA:
                    case PATAK:
                    case THAN:
                    case NANGMONTHO:
                    case PHUTHAO:
                    case NEN:
                    case DEK:
                    case TAO:
                    case THUNG:
                    case THAHAN:
                    case THONG:
                    case NU:
                    case BAIMAI:
                    case PLA:
                    case PHUNG:
                    case FA:
                    case PHAN:
                    case FAN:
                    case SAMPHAO:
                    case MA:
                    case YAK:
                    case RUA:
                    case LING:
                    case WAEN:
                    case SALA:
                    case RUSI:
                    case SUA:
                    case HIP:
                    case CHULA:
                    case ANG:
                    case NOKHUK:
                        {
                        switch ( input.LA(4) ) {
                        case EOF:
                        case A:
                        case HANAKAT:
                        case AM:
                        case I:
                        case II:
                        case UE:
                        case UEE:
                        case U:
                        case UU:
                        case E:
                        case AE:
                        case O:
                        case MUAN:
                        case MALAI:
                        case LAKKHANGYAO:
                        case RU:
                        case LU:
                        case PAIYANNOI:
                        case PHINTHU:
                        case YAMOK:
                        case TAIKHU:
                        case THANTHAKHAT:
                        case NIKHAHIT:
                        case YAMAKKAN:
                        case FONGMAN:
                        case ANGKHANKHU:
                        case KHOMUT:
                        case KAI:
                        case KHAI:
                        case KHUAT:
                        case KHWAI:
                        case KHON:
                        case RAKHANG:
                        case NGU:
                        case CHAN:
                        case CHING:
                        case CHANG:
                        case SO:
                        case CHOE:
                        case YING:
                        case CHADA:
                        case PATAK:
                        case THAN:
                        case NANGMONTHO:
                        case PHUTHAO:
                        case NEN:
                        case DEK:
                        case TAO:
                        case THUNG:
                        case THAHAN:
                        case THONG:
                        case NU:
                        case BAIMAI:
                        case PLA:
                        case PHUNG:
                        case FA:
                        case PHAN:
                        case FAN:
                        case SAMPHAO:
                        case MA:
                        case YAK:
                        case RUA:
                        case LING:
                        case WAEN:
                        case SALA:
                        case RUSI:
                        case SUA:
                        case HIP:
                        case CHULA:
                        case ANG:
                        case NOKHUK:
                            {
                            alt7=7;
                            }
                            break;
                        case TONE:
                            {
                            int LA7_33 = input.LA(5);

                            if ( (LA7_33==AA) ) {
                                int LA7_34 = input.LA(6);

                                if ( (LA7_34==EOF||(LA7_34>=A && LA7_34<=NOKHUK)) ) {
                                    alt7=7;
                                }
                                else {
                                    NoViableAltException nvae =
                                        new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 34, input);

                                    throw nvae;
                                }
                            }
                            else if ( (LA7_33==EOF||(LA7_33>=A && LA7_33<=HANAKAT)||(LA7_33>=AM && LA7_33<=NOKHUK)) ) {
                                alt7=7;
                            }
                            else {
                                NoViableAltException nvae =
                                    new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 33, input);

                                throw nvae;
                            }
                            }
                            break;
                        case AA:
                            {
                            int LA7_34 = input.LA(5);

                            if ( (LA7_34==EOF||(LA7_34>=A && LA7_34<=NOKHUK)) ) {
                                alt7=7;
                            }
                            else {
                                NoViableAltException nvae =
                                    new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 34, input);

                                throw nvae;
                            }
                            }
                            break;
                        default:
                            NoViableAltException nvae =
                                new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 20, input);

                            throw nvae;
                        }

                        }
                        break;
                    case TONE:
                        {
                        switch ( input.LA(4) ) {
                        case A:
                            {
                            alt7=7;
                            }
                            break;
                        case EOF:
                        case HANAKAT:
                        case AM:
                        case I:
                        case II:
                        case UE:
                        case UEE:
                        case U:
                        case UU:
                        case E:
                        case AE:
                        case O:
                        case MUAN:
                        case MALAI:
                        case LAKKHANGYAO:
                        case RU:
                        case LU:
                        case PAIYANNOI:
                        case PHINTHU:
                        case YAMOK:
                        case TAIKHU:
                        case THANTHAKHAT:
                        case NIKHAHIT:
                        case YAMAKKAN:
                        case FONGMAN:
                        case ANGKHANKHU:
                        case KHOMUT:
                        case KAI:
                        case KHAI:
                        case KHUAT:
                        case KHWAI:
                        case KHON:
                        case RAKHANG:
                        case NGU:
                        case CHAN:
                        case CHING:
                        case CHANG:
                        case SO:
                        case CHOE:
                        case YING:
                        case CHADA:
                        case PATAK:
                        case THAN:
                        case NANGMONTHO:
                        case PHUTHAO:
                        case NEN:
                        case DEK:
                        case TAO:
                        case THUNG:
                        case THAHAN:
                        case THONG:
                        case NU:
                        case BAIMAI:
                        case PLA:
                        case PHUNG:
                        case FA:
                        case PHAN:
                        case FAN:
                        case SAMPHAO:
                        case MA:
                        case YAK:
                        case RUA:
                        case LING:
                        case WAEN:
                        case SALA:
                        case RUSI:
                        case SUA:
                        case HIP:
                        case CHULA:
                        case ANG:
                        case NOKHUK:
                            {
                            alt7=7;
                            }
                            break;
                        case AA:
                            {
                            alt7=7;
                            }
                            break;
                        default:
                            NoViableAltException nvae =
                                new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 21, input);

                            throw nvae;
                        }

                        }
                        break;
                    case AA:
                        {
                        alt7=7;
                        }
                        break;
                    case EOF:
                    case A:
                    case HANAKAT:
                    case AM:
                    case UE:
                    case U:
                    case UU:
                    case E:
                    case AE:
                    case O:
                    case MUAN:
                    case MALAI:
                    case LAKKHANGYAO:
                    case RU:
                    case LU:
                    case PAIYANNOI:
                    case PHINTHU:
                    case YAMOK:
                    case THANTHAKHAT:
                    case NIKHAHIT:
                    case YAMAKKAN:
                    case FONGMAN:
                    case ANGKHANKHU:
                    case KHOMUT:
                        {
                        alt7=7;
                        }
                        break;
                    case TAIKHU:
                        {
                        int LA7_24 = input.LA(4);

                        if ( (LA7_24==EOF) ) {
                            alt7=7;
                        }
                        else if ( ((LA7_24>=A && LA7_24<=NOKHUK)) ) {
                            alt7=7;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 24, input);

                            throw nvae;
                        }
                        }
                        break;
                    case I:
                        {
                        switch ( input.LA(4) ) {
                        case EOF:
                            {
                            alt7=7;
                            }
                            break;
                        case A:
                        case HANAKAT:
                        case AA:
                        case AM:
                        case I:
                        case II:
                        case UE:
                        case UEE:
                        case U:
                        case UU:
                        case E:
                        case AE:
                        case O:
                        case MUAN:
                        case MALAI:
                        case LAKKHANGYAO:
                        case RU:
                        case LU:
                        case PAIYANNOI:
                        case PHINTHU:
                        case YAMOK:
                        case TAIKHU:
                        case THANTHAKHAT:
                        case NIKHAHIT:
                        case YAMAKKAN:
                        case FONGMAN:
                        case ANGKHANKHU:
                        case KHOMUT:
                        case KAI:
                        case KHAI:
                        case KHUAT:
                        case KHWAI:
                        case KHON:
                        case RAKHANG:
                        case NGU:
                        case CHAN:
                        case CHING:
                        case CHANG:
                        case SO:
                        case CHOE:
                        case YING:
                        case CHADA:
                        case PATAK:
                        case THAN:
                        case NANGMONTHO:
                        case PHUTHAO:
                        case NEN:
                        case DEK:
                        case TAO:
                        case THUNG:
                        case THAHAN:
                        case THONG:
                        case NU:
                        case BAIMAI:
                        case PLA:
                        case PHUNG:
                        case FA:
                        case PHAN:
                        case FAN:
                        case SAMPHAO:
                        case MA:
                        case YAK:
                        case RUA:
                        case LING:
                        case WAEN:
                        case SALA:
                        case RUSI:
                        case SUA:
                        case HIP:
                        case CHULA:
                        case ANG:
                        case NOKHUK:
                            {
                            alt7=7;
                            }
                            break;
                        case TONE:
                            {
                            alt7=8;
                            }
                            break;
                        default:
                            NoViableAltException nvae =
                                new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 25, input);

                            throw nvae;
                        }

                        }
                        break;
                    case II:
                        {
                        int LA7_26 = input.LA(4);

                        if ( (LA7_26==TONE) ) {
                            alt7=9;
                        }
                        else if ( (LA7_26==EOF||(LA7_26>=A && LA7_26<=NOKHUK)) ) {
                            alt7=7;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 26, input);

                            throw nvae;
                        }
                        }
                        break;
                    case UEE:
                        {
                        switch ( input.LA(4) ) {
                        case EOF:
                            {
                            alt7=7;
                            }
                            break;
                        case A:
                        case HANAKAT:
                        case AA:
                        case AM:
                        case I:
                        case II:
                        case UE:
                        case UEE:
                        case U:
                        case UU:
                        case E:
                        case AE:
                        case O:
                        case MUAN:
                        case MALAI:
                        case LAKKHANGYAO:
                        case RU:
                        case LU:
                        case PAIYANNOI:
                        case PHINTHU:
                        case YAMOK:
                        case TAIKHU:
                        case THANTHAKHAT:
                        case NIKHAHIT:
                        case YAMAKKAN:
                        case FONGMAN:
                        case ANGKHANKHU:
                        case KHOMUT:
                        case KAI:
                        case KHAI:
                        case KHUAT:
                        case KHWAI:
                        case KHON:
                        case RAKHANG:
                        case NGU:
                        case CHAN:
                        case CHING:
                        case CHANG:
                        case SO:
                        case CHOE:
                        case YING:
                        case CHADA:
                        case PATAK:
                        case THAN:
                        case NANGMONTHO:
                        case PHUTHAO:
                        case NEN:
                        case DEK:
                        case TAO:
                        case THUNG:
                        case THAHAN:
                        case THONG:
                        case NU:
                        case BAIMAI:
                        case PLA:
                        case PHUNG:
                        case FA:
                        case PHAN:
                        case FAN:
                        case SAMPHAO:
                        case MA:
                        case YAK:
                        case RUA:
                        case LING:
                        case WAEN:
                        case SALA:
                        case RUSI:
                        case SUA:
                        case HIP:
                        case CHULA:
                        case ANG:
                        case NOKHUK:
                            {
                            alt7=7;
                            }
                            break;
                        case TONE:
                            {
                            alt7=10;
                            }
                            break;
                        default:
                            NoViableAltException nvae =
                                new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 27, input);

                            throw nvae;
                        }

                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 15, input);

                        throw nvae;
                    }

                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 2, input);

                    throw nvae;
                }
                }
                break;
            case AE:
                {
                int LA7_3 = input.LA(2);

                if ( ((LA7_3>=KAI && LA7_3<=NOKHUK)) ) {
                    switch ( input.LA(3) ) {
                    case TONE:
                        {
                        int LA7_28 = input.LA(4);

                        if ( (LA7_28==EOF||(LA7_28>=HANAKAT && LA7_28<=NOKHUK)) ) {
                            alt7=7;
                        }
                        else if ( (LA7_28==A) ) {
                            alt7=7;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 28, input);

                            throw nvae;
                        }
                        }
                        break;
                    case EOF:
                    case A:
                    case HANAKAT:
                    case AA:
                    case AM:
                    case I:
                    case II:
                    case UE:
                    case UEE:
                    case U:
                    case UU:
                    case E:
                    case AE:
                    case O:
                    case MUAN:
                    case MALAI:
                    case LAKKHANGYAO:
                    case RU:
                    case LU:
                    case PAIYANNOI:
                    case PHINTHU:
                    case YAMOK:
                    case THANTHAKHAT:
                    case NIKHAHIT:
                    case YAMAKKAN:
                    case FONGMAN:
                    case ANGKHANKHU:
                    case KHOMUT:
                    case KAI:
                    case KHAI:
                    case KHUAT:
                    case KHWAI:
                    case KHON:
                    case RAKHANG:
                    case NGU:
                    case CHAN:
                    case CHING:
                    case CHANG:
                    case SO:
                    case CHOE:
                    case YING:
                    case CHADA:
                    case PATAK:
                    case THAN:
                    case NANGMONTHO:
                    case PHUTHAO:
                    case NEN:
                    case DEK:
                    case TAO:
                    case THUNG:
                    case THAHAN:
                    case THONG:
                    case NU:
                    case BAIMAI:
                    case PLA:
                    case PHUNG:
                    case FA:
                    case PHAN:
                    case FAN:
                    case SAMPHAO:
                    case MA:
                    case YAK:
                    case RUA:
                    case LING:
                    case WAEN:
                    case SALA:
                    case RUSI:
                    case SUA:
                    case HIP:
                    case CHULA:
                    case ANG:
                    case NOKHUK:
                        {
                        alt7=7;
                        }
                        break;
                    case TAIKHU:
                        {
                        int LA7_30 = input.LA(4);

                        if ( (LA7_30==EOF||(LA7_30>=A && LA7_30<=NOKHUK)) ) {
                            alt7=7;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 30, input);

                            throw nvae;
                        }
                        }
                        break;
                    default:
                        NoViableAltException nvae =
                            new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 16, input);

                        throw nvae;
                    }

                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 3, input);

                    throw nvae;
                }
                }
                break;
            case O:
                {
                int LA7_4 = input.LA(2);

                if ( ((LA7_4>=KAI && LA7_4<=NOKHUK)) ) {
                    int LA7_17 = input.LA(3);

                    if ( (LA7_17==TONE) ) {
                        int LA7_31 = input.LA(4);

                        if ( (LA7_31==EOF||(LA7_31>=HANAKAT && LA7_31<=NOKHUK)) ) {
                            alt7=7;
                        }
                        else if ( (LA7_31==A) ) {
                            alt7=7;
                        }
                        else {
                            NoViableAltException nvae =
                                new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 31, input);

                            throw nvae;
                        }
                    }
                    else if ( (LA7_17==EOF||(LA7_17>=A && LA7_17<=NOKHUK)) ) {
                        alt7=7;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 17, input);

                        throw nvae;
                    }
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 4, input);

                    throw nvae;
                }
                }
                break;
            case MUAN:
            case MALAI:
                {
                alt7=7;
                }
                break;
            case RU:
            case LU:
                {
                alt7=14;
                }
                break;
            case PAIYANNOI:
            case YAMOK:
            case FONGMAN:
            case ANGKHANKHU:
            case KHOMUT:
                {
                alt7=15;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("232:1: tcc : ( ( c ( abv )? kill ) -> ^( TCC c ( abv )? kill ) | ( c abv ( TONE )? ) -> ^( TCC c abv ( TONE )? ) | ( c sv ) -> ^( TCC c sv ) | ( c TAIKHU ) -> ^( TCC c TAIKHU ) | ( c hanakat_c ) -> ^( TCC c hanakat_c ) | ( c ( TONE )? ( fv )? ) -> ^( TCC c ( TONE )? ( fv )? ) | ( lv c ( TONE )? ) -> ^( TCC lv c ( TONE )? ) | ( E c I e_i_opt ) -> ^( TCC E c I e_i_opt ) | ( E c II e_ii_opt ) -> ^( TCC E c II e_ii_opt ) | ( E c UEE e_uee_opt ) -> ^( TCC E c UEE e_uee_opt ) | ( E c e_opt ) -> ^( TCC E c e_opt ) | ( AE c ae_opt ) -> ^( TCC AE c ae_opt ) | ( O c o_opt ) -> ^( TCC O c o_opt ) | ( sv ) -> ^( TCC sv ) | ( tsymbol ) -> ^( TCC tsymbol ) );", 7, 0, input);

                throw nvae;
            }

            switch (alt7) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:232:8: ( c ( abv )? kill )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:232:8: ( c ( abv )? kill )
                    // /home/arthit/projects/siit-commons/src/TCC.g:232:10: c ( abv )? kill
                    {
                    pushFollow(FOLLOW_c_in_tcc1001);
                    c3=c();
                    _fsp--;

                    stream_c.add(c3.getTree());
                    // /home/arthit/projects/siit-commons/src/TCC.g:232:12: ( abv )?
                    int alt2=2;
                    int LA2_0 = input.LA(1);

                    if ( ((LA2_0>=I && LA2_0<=UU)||LA2_0==PHINTHU||LA2_0==TAIKHU||LA2_0==NIKHAHIT) ) {
                        alt2=1;
                    }
                    switch (alt2) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:232:12: abv
                            {
                            pushFollow(FOLLOW_abv_in_tcc1003);
                            abv4=abv();
                            _fsp--;

                            stream_abv.add(abv4.getTree());

                            }
                            break;

                    }

                    pushFollow(FOLLOW_kill_in_tcc1006);
                    kill5=kill();
                    _fsp--;

                    stream_kill.add(kill5.getTree());

                    }


                    // AST REWRITE
                    // elements: kill, abv, c
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 232:24: -> ^( TCC c ( abv )? kill )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:232:27: ^( TCC c ( abv )? kill )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_c.next());
                        // /home/arthit/projects/siit-commons/src/TCC.g:232:35: ( abv )?
                        if ( stream_abv.hasNext() ) {
                            adaptor.addChild(root_1, stream_abv.next());

                        }
                        stream_abv.reset();
                        adaptor.addChild(root_1, stream_kill.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 2 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:233:4: ( c abv ( TONE )? )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:233:4: ( c abv ( TONE )? )
                    // /home/arthit/projects/siit-commons/src/TCC.g:233:6: c abv ( TONE )?
                    {
                    pushFollow(FOLLOW_c_in_tcc1028);
                    c6=c();
                    _fsp--;

                    stream_c.add(c6.getTree());
                    pushFollow(FOLLOW_abv_in_tcc1030);
                    abv7=abv();
                    _fsp--;

                    stream_abv.add(abv7.getTree());
                    // /home/arthit/projects/siit-commons/src/TCC.g:233:12: ( TONE )?
                    int alt3=2;
                    int LA3_0 = input.LA(1);

                    if ( (LA3_0==TONE) ) {
                        alt3=1;
                    }
                    switch (alt3) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:233:12: TONE
                            {
                            TONE8=(Token)input.LT(1);
                            match(input,TONE,FOLLOW_TONE_in_tcc1032); 
                            stream_TONE.add(TONE8);


                            }
                            break;

                    }


                    }


                    // AST REWRITE
                    // elements: c, abv, TONE
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 233:20: -> ^( TCC c abv ( TONE )? )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:233:23: ^( TCC c abv ( TONE )? )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_c.next());
                        adaptor.addChild(root_1, stream_abv.next());
                        // /home/arthit/projects/siit-commons/src/TCC.g:233:35: ( TONE )?
                        if ( stream_TONE.hasNext() ) {
                            adaptor.addChild(root_1, stream_TONE.next());

                        }
                        stream_TONE.reset();

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 3 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:234:4: ( c sv )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:234:4: ( c sv )
                    // /home/arthit/projects/siit-commons/src/TCC.g:234:6: c sv
                    {
                    pushFollow(FOLLOW_c_in_tcc1055);
                    c9=c();
                    _fsp--;

                    stream_c.add(c9.getTree());
                    pushFollow(FOLLOW_sv_in_tcc1057);
                    sv10=sv();
                    _fsp--;

                    stream_sv.add(sv10.getTree());

                    }


                    // AST REWRITE
                    // elements: c, sv
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 234:13: -> ^( TCC c sv )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:234:16: ^( TCC c sv )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_c.next());
                        adaptor.addChild(root_1, stream_sv.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 4 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:235:4: ( c TAIKHU )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:235:4: ( c TAIKHU )
                    // /home/arthit/projects/siit-commons/src/TCC.g:235:6: c TAIKHU
                    {
                    pushFollow(FOLLOW_c_in_tcc1076);
                    c11=c();
                    _fsp--;

                    stream_c.add(c11.getTree());
                    TAIKHU12=(Token)input.LT(1);
                    match(input,TAIKHU,FOLLOW_TAIKHU_in_tcc1078); 
                    stream_TAIKHU.add(TAIKHU12);


                    }


                    // AST REWRITE
                    // elements: TAIKHU, c
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 235:17: -> ^( TCC c TAIKHU )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:235:20: ^( TCC c TAIKHU )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_c.next());
                        adaptor.addChild(root_1, stream_TAIKHU.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 5 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:236:4: ( c hanakat_c )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:236:4: ( c hanakat_c )
                    // /home/arthit/projects/siit-commons/src/TCC.g:236:6: c hanakat_c
                    {
                    pushFollow(FOLLOW_c_in_tcc1097);
                    c13=c();
                    _fsp--;

                    stream_c.add(c13.getTree());
                    pushFollow(FOLLOW_hanakat_c_in_tcc1099);
                    hanakat_c14=hanakat_c();
                    _fsp--;

                    stream_hanakat_c.add(hanakat_c14.getTree());

                    }


                    // AST REWRITE
                    // elements: hanakat_c, c
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 236:20: -> ^( TCC c hanakat_c )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:236:23: ^( TCC c hanakat_c )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_c.next());
                        adaptor.addChild(root_1, stream_hanakat_c.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 6 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:237:5: ( c ( TONE )? ( fv )? )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:237:5: ( c ( TONE )? ( fv )? )
                    // /home/arthit/projects/siit-commons/src/TCC.g:237:7: c ( TONE )? ( fv )?
                    {
                    pushFollow(FOLLOW_c_in_tcc1119);
                    c15=c();
                    _fsp--;

                    stream_c.add(c15.getTree());
                    // /home/arthit/projects/siit-commons/src/TCC.g:237:9: ( TONE )?
                    int alt4=2;
                    int LA4_0 = input.LA(1);

                    if ( (LA4_0==TONE) ) {
                        alt4=1;
                    }
                    switch (alt4) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:237:9: TONE
                            {
                            TONE16=(Token)input.LT(1);
                            match(input,TONE,FOLLOW_TONE_in_tcc1121); 
                            stream_TONE.add(TONE16);


                            }
                            break;

                    }

                    // /home/arthit/projects/siit-commons/src/TCC.g:237:15: ( fv )?
                    int alt5=2;
                    switch ( input.LA(1) ) {
                        case A:
                            {
                            alt5=1;
                            }
                            break;
                        case AA:
                            {
                            alt5=1;
                            }
                            break;
                        case AM:
                            {
                            alt5=1;
                            }
                            break;
                        case LAKKHANGYAO:
                            {
                            alt5=1;
                            }
                            break;
                        case NIKHAHIT:
                            {
                            int LA5_5 = input.LA(2);

                            if ( (LA5_5==AA) ) {
                                alt5=1;
                            }
                            }
                            break;
                    }

                    switch (alt5) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:237:15: fv
                            {
                            pushFollow(FOLLOW_fv_in_tcc1124);
                            fv17=fv();
                            _fsp--;

                            stream_fv.add(fv17.getTree());

                            }
                            break;

                    }


                    }


                    // AST REWRITE
                    // elements: fv, TONE, c
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 237:21: -> ^( TCC c ( TONE )? ( fv )? )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:237:24: ^( TCC c ( TONE )? ( fv )? )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_c.next());
                        // /home/arthit/projects/siit-commons/src/TCC.g:237:32: ( TONE )?
                        if ( stream_TONE.hasNext() ) {
                            adaptor.addChild(root_1, stream_TONE.next());

                        }
                        stream_TONE.reset();
                        // /home/arthit/projects/siit-commons/src/TCC.g:237:38: ( fv )?
                        if ( stream_fv.hasNext() ) {
                            adaptor.addChild(root_1, stream_fv.next());

                        }
                        stream_fv.reset();

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 7 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:238:4: ( lv c ( TONE )? )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:238:4: ( lv c ( TONE )? )
                    // /home/arthit/projects/siit-commons/src/TCC.g:238:6: lv c ( TONE )?
                    {
                    pushFollow(FOLLOW_lv_in_tcc1148);
                    lv18=lv();
                    _fsp--;

                    stream_lv.add(lv18.getTree());
                    pushFollow(FOLLOW_c_in_tcc1150);
                    c19=c();
                    _fsp--;

                    stream_c.add(c19.getTree());
                    // /home/arthit/projects/siit-commons/src/TCC.g:238:11: ( TONE )?
                    int alt6=2;
                    int LA6_0 = input.LA(1);

                    if ( (LA6_0==TONE) ) {
                        alt6=1;
                    }
                    switch (alt6) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:238:11: TONE
                            {
                            TONE20=(Token)input.LT(1);
                            match(input,TONE,FOLLOW_TONE_in_tcc1152); 
                            stream_TONE.add(TONE20);


                            }
                            break;

                    }


                    }


                    // AST REWRITE
                    // elements: c, lv, TONE
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 238:19: -> ^( TCC lv c ( TONE )? )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:238:22: ^( TCC lv c ( TONE )? )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_lv.next());
                        adaptor.addChild(root_1, stream_c.next());
                        // /home/arthit/projects/siit-commons/src/TCC.g:238:33: ( TONE )?
                        if ( stream_TONE.hasNext() ) {
                            adaptor.addChild(root_1, stream_TONE.next());

                        }
                        stream_TONE.reset();

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 8 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:239:4: ( E c I e_i_opt )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:239:4: ( E c I e_i_opt )
                    // /home/arthit/projects/siit-commons/src/TCC.g:239:6: E c I e_i_opt
                    {
                    E21=(Token)input.LT(1);
                    match(input,E,FOLLOW_E_in_tcc1175); 
                    stream_E.add(E21);

                    pushFollow(FOLLOW_c_in_tcc1177);
                    c22=c();
                    _fsp--;

                    stream_c.add(c22.getTree());
                    I23=(Token)input.LT(1);
                    match(input,I,FOLLOW_I_in_tcc1179); 
                    stream_I.add(I23);

                    pushFollow(FOLLOW_e_i_opt_in_tcc1181);
                    e_i_opt24=e_i_opt();
                    _fsp--;

                    stream_e_i_opt.add(e_i_opt24.getTree());

                    }


                    // AST REWRITE
                    // elements: c, E, e_i_opt, I
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 239:22: -> ^( TCC E c I e_i_opt )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:239:25: ^( TCC E c I e_i_opt )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_E.next());
                        adaptor.addChild(root_1, stream_c.next());
                        adaptor.addChild(root_1, stream_I.next());
                        adaptor.addChild(root_1, stream_e_i_opt.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 9 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:240:4: ( E c II e_ii_opt )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:240:4: ( E c II e_ii_opt )
                    // /home/arthit/projects/siit-commons/src/TCC.g:240:6: E c II e_ii_opt
                    {
                    E25=(Token)input.LT(1);
                    match(input,E,FOLLOW_E_in_tcc1204); 
                    stream_E.add(E25);

                    pushFollow(FOLLOW_c_in_tcc1206);
                    c26=c();
                    _fsp--;

                    stream_c.add(c26.getTree());
                    II27=(Token)input.LT(1);
                    match(input,II,FOLLOW_II_in_tcc1208); 
                    stream_II.add(II27);

                    pushFollow(FOLLOW_e_ii_opt_in_tcc1210);
                    e_ii_opt28=e_ii_opt();
                    _fsp--;

                    stream_e_ii_opt.add(e_ii_opt28.getTree());

                    }


                    // AST REWRITE
                    // elements: II, e_ii_opt, c, E
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 240:24: -> ^( TCC E c II e_ii_opt )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:240:27: ^( TCC E c II e_ii_opt )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_E.next());
                        adaptor.addChild(root_1, stream_c.next());
                        adaptor.addChild(root_1, stream_II.next());
                        adaptor.addChild(root_1, stream_e_ii_opt.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 10 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:241:4: ( E c UEE e_uee_opt )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:241:4: ( E c UEE e_uee_opt )
                    // /home/arthit/projects/siit-commons/src/TCC.g:241:6: E c UEE e_uee_opt
                    {
                    E29=(Token)input.LT(1);
                    match(input,E,FOLLOW_E_in_tcc1233); 
                    stream_E.add(E29);

                    pushFollow(FOLLOW_c_in_tcc1235);
                    c30=c();
                    _fsp--;

                    stream_c.add(c30.getTree());
                    UEE31=(Token)input.LT(1);
                    match(input,UEE,FOLLOW_UEE_in_tcc1237); 
                    stream_UEE.add(UEE31);

                    pushFollow(FOLLOW_e_uee_opt_in_tcc1239);
                    e_uee_opt32=e_uee_opt();
                    _fsp--;

                    stream_e_uee_opt.add(e_uee_opt32.getTree());

                    }


                    // AST REWRITE
                    // elements: c, UEE, E, e_uee_opt
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 241:26: -> ^( TCC E c UEE e_uee_opt )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:241:29: ^( TCC E c UEE e_uee_opt )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_E.next());
                        adaptor.addChild(root_1, stream_c.next());
                        adaptor.addChild(root_1, stream_UEE.next());
                        adaptor.addChild(root_1, stream_e_uee_opt.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 11 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:242:4: ( E c e_opt )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:242:4: ( E c e_opt )
                    // /home/arthit/projects/siit-commons/src/TCC.g:242:6: E c e_opt
                    {
                    E33=(Token)input.LT(1);
                    match(input,E,FOLLOW_E_in_tcc1262); 
                    stream_E.add(E33);

                    pushFollow(FOLLOW_c_in_tcc1264);
                    c34=c();
                    _fsp--;

                    stream_c.add(c34.getTree());
                    pushFollow(FOLLOW_e_opt_in_tcc1266);
                    e_opt35=e_opt();
                    _fsp--;

                    stream_e_opt.add(e_opt35.getTree());

                    }


                    // AST REWRITE
                    // elements: E, e_opt, c
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 242:18: -> ^( TCC E c e_opt )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:242:21: ^( TCC E c e_opt )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_E.next());
                        adaptor.addChild(root_1, stream_c.next());
                        adaptor.addChild(root_1, stream_e_opt.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 12 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:243:4: ( AE c ae_opt )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:243:4: ( AE c ae_opt )
                    // /home/arthit/projects/siit-commons/src/TCC.g:243:6: AE c ae_opt
                    {
                    AE36=(Token)input.LT(1);
                    match(input,AE,FOLLOW_AE_in_tcc1287); 
                    stream_AE.add(AE36);

                    pushFollow(FOLLOW_c_in_tcc1289);
                    c37=c();
                    _fsp--;

                    stream_c.add(c37.getTree());
                    pushFollow(FOLLOW_ae_opt_in_tcc1291);
                    ae_opt38=ae_opt();
                    _fsp--;

                    stream_ae_opt.add(ae_opt38.getTree());

                    }


                    // AST REWRITE
                    // elements: c, AE, ae_opt
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 243:20: -> ^( TCC AE c ae_opt )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:243:23: ^( TCC AE c ae_opt )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_AE.next());
                        adaptor.addChild(root_1, stream_c.next());
                        adaptor.addChild(root_1, stream_ae_opt.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 13 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:244:4: ( O c o_opt )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:244:4: ( O c o_opt )
                    // /home/arthit/projects/siit-commons/src/TCC.g:244:6: O c o_opt
                    {
                    O39=(Token)input.LT(1);
                    match(input,O,FOLLOW_O_in_tcc1312); 
                    stream_O.add(O39);

                    pushFollow(FOLLOW_c_in_tcc1314);
                    c40=c();
                    _fsp--;

                    stream_c.add(c40.getTree());
                    pushFollow(FOLLOW_o_opt_in_tcc1316);
                    o_opt41=o_opt();
                    _fsp--;

                    stream_o_opt.add(o_opt41.getTree());

                    }


                    // AST REWRITE
                    // elements: c, o_opt, O
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 244:18: -> ^( TCC O c o_opt )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:244:21: ^( TCC O c o_opt )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_O.next());
                        adaptor.addChild(root_1, stream_c.next());
                        adaptor.addChild(root_1, stream_o_opt.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 14 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:245:4: ( sv )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:245:4: ( sv )
                    // /home/arthit/projects/siit-commons/src/TCC.g:245:6: sv
                    {
                    pushFollow(FOLLOW_sv_in_tcc1337);
                    sv42=sv();
                    _fsp--;

                    stream_sv.add(sv42.getTree());

                    }


                    // AST REWRITE
                    // elements: sv
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 245:11: -> ^( TCC sv )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:245:14: ^( TCC sv )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_sv.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 15 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:246:4: ( tsymbol )
                    {
                    // /home/arthit/projects/siit-commons/src/TCC.g:246:4: ( tsymbol )
                    // /home/arthit/projects/siit-commons/src/TCC.g:246:6: tsymbol
                    {
                    pushFollow(FOLLOW_tsymbol_in_tcc1354);
                    tsymbol43=tsymbol();
                    _fsp--;

                    stream_tsymbol.add(tsymbol43.getTree());

                    }


                    // AST REWRITE
                    // elements: tsymbol
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 246:16: -> ^( TCC tsymbol )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:246:19: ^( TCC tsymbol )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(TCC, "TCC"), root_1);

                        adaptor.addChild(root_1, stream_tsymbol.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;

            }
            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end tcc

    public static class abtcc_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start abtcc
    // /home/arthit/projects/siit-commons/src/TCC.g:250:1: abtcc : ( fv -> ^( ATCC fv ) | lv -> ^( BTCC lv ) | abv -> ^( ATCC abv ) | hanakat_c -> ^( ATCC hanakat_c ) | kill -> ^( ATCC kill ) );
    public final abtcc_return abtcc() throws RecognitionException {
        abtcc_return retval = new abtcc_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        fv_return fv44 = null;

        lv_return lv45 = null;

        abv_return abv46 = null;

        hanakat_c_return hanakat_c47 = null;

        kill_return kill48 = null;


        RewriteRuleSubtreeStream stream_abv=new RewriteRuleSubtreeStream(adaptor,"rule abv");
        RewriteRuleSubtreeStream stream_fv=new RewriteRuleSubtreeStream(adaptor,"rule fv");
        RewriteRuleSubtreeStream stream_hanakat_c=new RewriteRuleSubtreeStream(adaptor,"rule hanakat_c");
        RewriteRuleSubtreeStream stream_kill=new RewriteRuleSubtreeStream(adaptor,"rule kill");
        RewriteRuleSubtreeStream stream_lv=new RewriteRuleSubtreeStream(adaptor,"rule lv");
        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:250:8: ( fv -> ^( ATCC fv ) | lv -> ^( BTCC lv ) | abv -> ^( ATCC abv ) | hanakat_c -> ^( ATCC hanakat_c ) | kill -> ^( ATCC kill ) )
            int alt8=5;
            switch ( input.LA(1) ) {
            case A:
            case AA:
            case AM:
            case LAKKHANGYAO:
                {
                alt8=1;
                }
                break;
            case NIKHAHIT:
                {
                int LA8_2 = input.LA(2);

                if ( (LA8_2==AA) ) {
                    alt8=1;
                }
                else if ( (LA8_2==EOF||(LA8_2>=A && LA8_2<=HANAKAT)||(LA8_2>=AM && LA8_2<=NOKHUK)) ) {
                    alt8=3;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("250:1: abtcc : ( fv -> ^( ATCC fv ) | lv -> ^( BTCC lv ) | abv -> ^( ATCC abv ) | hanakat_c -> ^( ATCC hanakat_c ) | kill -> ^( ATCC kill ) );", 8, 2, input);

                    throw nvae;
                }
                }
                break;
            case E:
            case AE:
            case O:
            case MUAN:
            case MALAI:
                {
                alt8=2;
                }
                break;
            case I:
            case II:
            case UE:
            case UEE:
            case U:
            case UU:
            case PHINTHU:
            case TAIKHU:
                {
                alt8=3;
                }
                break;
            case HANAKAT:
                {
                alt8=4;
                }
                break;
            case THANTHAKHAT:
            case YAMAKKAN:
                {
                alt8=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("250:1: abtcc : ( fv -> ^( ATCC fv ) | lv -> ^( BTCC lv ) | abv -> ^( ATCC abv ) | hanakat_c -> ^( ATCC hanakat_c ) | kill -> ^( ATCC kill ) );", 8, 0, input);

                throw nvae;
            }

            switch (alt8) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:250:10: fv
                    {
                    pushFollow(FOLLOW_fv_in_abtcc1377);
                    fv44=fv();
                    _fsp--;

                    stream_fv.add(fv44.getTree());

                    // AST REWRITE
                    // elements: fv
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 250:13: -> ^( ATCC fv )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:250:16: ^( ATCC fv )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(ATCC, "ATCC"), root_1);

                        adaptor.addChild(root_1, stream_fv.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 2 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:251:4: lv
                    {
                    pushFollow(FOLLOW_lv_in_abtcc1390);
                    lv45=lv();
                    _fsp--;

                    stream_lv.add(lv45.getTree());

                    // AST REWRITE
                    // elements: lv
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 251:7: -> ^( BTCC lv )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:251:10: ^( BTCC lv )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(BTCC, "BTCC"), root_1);

                        adaptor.addChild(root_1, stream_lv.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 3 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:252:4: abv
                    {
                    pushFollow(FOLLOW_abv_in_abtcc1403);
                    abv46=abv();
                    _fsp--;

                    stream_abv.add(abv46.getTree());

                    // AST REWRITE
                    // elements: abv
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 252:8: -> ^( ATCC abv )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:252:11: ^( ATCC abv )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(ATCC, "ATCC"), root_1);

                        adaptor.addChild(root_1, stream_abv.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 4 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:253:4: hanakat_c
                    {
                    pushFollow(FOLLOW_hanakat_c_in_abtcc1416);
                    hanakat_c47=hanakat_c();
                    _fsp--;

                    stream_hanakat_c.add(hanakat_c47.getTree());

                    // AST REWRITE
                    // elements: hanakat_c
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 253:14: -> ^( ATCC hanakat_c )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:253:17: ^( ATCC hanakat_c )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(ATCC, "ATCC"), root_1);

                        adaptor.addChild(root_1, stream_hanakat_c.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;
                case 5 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:254:4: kill
                    {
                    pushFollow(FOLLOW_kill_in_abtcc1429);
                    kill48=kill();
                    _fsp--;

                    stream_kill.add(kill48.getTree());

                    // AST REWRITE
                    // elements: kill
                    // token labels: 
                    // rule labels: retval
                    // token list labels: 
                    // rule list labels: 
                    retval.tree = root_0;
                    RewriteRuleSubtreeStream stream_retval=new RewriteRuleSubtreeStream(adaptor,"token retval",retval!=null?retval.tree:null);

                    root_0 = (CommonTree)adaptor.nil();
                    // 254:9: -> ^( ATCC kill )
                    {
                        // /home/arthit/projects/siit-commons/src/TCC.g:254:12: ^( ATCC kill )
                        {
                        CommonTree root_1 = (CommonTree)adaptor.nil();
                        root_1 = (CommonTree)adaptor.becomeRoot(adaptor.create(ATCC, "ATCC"), root_1);

                        adaptor.addChild(root_1, stream_kill.next());

                        adaptor.addChild(root_0, root_1);
                        }

                    }



                    }
                    break;

            }
            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end abtcc

    public static class hanakat_c_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start hanakat_c
    // /home/arthit/projects/siit-commons/src/TCC.g:257:1: hanakat_c : ( HANAKAT ( TONE )? c ( A | I | U )? | HANAKAT ( TONE )? c | HANAKAT ( TONE )? );
    public final hanakat_c_return hanakat_c() throws RecognitionException {
        hanakat_c_return retval = new hanakat_c_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token HANAKAT49=null;
        Token TONE50=null;
        Token set52=null;
        Token HANAKAT53=null;
        Token TONE54=null;
        Token HANAKAT56=null;
        Token TONE57=null;
        c_return c51 = null;

        c_return c55 = null;


        CommonTree HANAKAT49_tree=null;
        CommonTree TONE50_tree=null;
        CommonTree set52_tree=null;
        CommonTree HANAKAT53_tree=null;
        CommonTree TONE54_tree=null;
        CommonTree HANAKAT56_tree=null;
        CommonTree TONE57_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:257:11: ( HANAKAT ( TONE )? c ( A | I | U )? | HANAKAT ( TONE )? c | HANAKAT ( TONE )? )
            int alt13=3;
            int LA13_0 = input.LA(1);

            if ( (LA13_0==HANAKAT) ) {
                switch ( input.LA(2) ) {
                case TONE:
                    {
                    int LA13_2 = input.LA(3);

                    if ( ((LA13_2>=KAI && LA13_2<=NOKHUK)) ) {
                        alt13=1;
                    }
                    else if ( (LA13_2==EOF||(LA13_2>=A && LA13_2<=KHOMUT)) ) {
                        alt13=3;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("257:1: hanakat_c : ( HANAKAT ( TONE )? c ( A | I | U )? | HANAKAT ( TONE )? c | HANAKAT ( TONE )? );", 13, 2, input);

                        throw nvae;
                    }
                    }
                    break;
                case EOF:
                case A:
                case HANAKAT:
                case AA:
                case AM:
                case I:
                case II:
                case UE:
                case UEE:
                case U:
                case UU:
                case E:
                case AE:
                case O:
                case MUAN:
                case MALAI:
                case LAKKHANGYAO:
                case RU:
                case LU:
                case PAIYANNOI:
                case PHINTHU:
                case YAMOK:
                case TAIKHU:
                case THANTHAKHAT:
                case NIKHAHIT:
                case YAMAKKAN:
                case FONGMAN:
                case ANGKHANKHU:
                case KHOMUT:
                    {
                    alt13=3;
                    }
                    break;
                case KAI:
                case KHAI:
                case KHUAT:
                case KHWAI:
                case KHON:
                case RAKHANG:
                case NGU:
                case CHAN:
                case CHING:
                case CHANG:
                case SO:
                case CHOE:
                case YING:
                case CHADA:
                case PATAK:
                case THAN:
                case NANGMONTHO:
                case PHUTHAO:
                case NEN:
                case DEK:
                case TAO:
                case THUNG:
                case THAHAN:
                case THONG:
                case NU:
                case BAIMAI:
                case PLA:
                case PHUNG:
                case FA:
                case PHAN:
                case FAN:
                case SAMPHAO:
                case MA:
                case YAK:
                case RUA:
                case LING:
                case WAEN:
                case SALA:
                case RUSI:
                case SUA:
                case HIP:
                case CHULA:
                case ANG:
                case NOKHUK:
                    {
                    alt13=1;
                    }
                    break;
                default:
                    NoViableAltException nvae =
                        new NoViableAltException("257:1: hanakat_c : ( HANAKAT ( TONE )? c ( A | I | U )? | HANAKAT ( TONE )? c | HANAKAT ( TONE )? );", 13, 1, input);

                    throw nvae;
                }

            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("257:1: hanakat_c : ( HANAKAT ( TONE )? c ( A | I | U )? | HANAKAT ( TONE )? c | HANAKAT ( TONE )? );", 13, 0, input);

                throw nvae;
            }
            switch (alt13) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:257:13: HANAKAT ( TONE )? c ( A | I | U )?
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    HANAKAT49=(Token)input.LT(1);
                    match(input,HANAKAT,FOLLOW_HANAKAT_in_hanakat_c1448); 
                    HANAKAT49_tree = (CommonTree)adaptor.create(HANAKAT49);
                    adaptor.addChild(root_0, HANAKAT49_tree);

                    // /home/arthit/projects/siit-commons/src/TCC.g:257:21: ( TONE )?
                    int alt9=2;
                    int LA9_0 = input.LA(1);

                    if ( (LA9_0==TONE) ) {
                        alt9=1;
                    }
                    switch (alt9) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:257:21: TONE
                            {
                            TONE50=(Token)input.LT(1);
                            match(input,TONE,FOLLOW_TONE_in_hanakat_c1450); 
                            TONE50_tree = (CommonTree)adaptor.create(TONE50);
                            adaptor.addChild(root_0, TONE50_tree);


                            }
                            break;

                    }

                    pushFollow(FOLLOW_c_in_hanakat_c1453);
                    c51=c();
                    _fsp--;

                    adaptor.addChild(root_0, c51.getTree());
                    // /home/arthit/projects/siit-commons/src/TCC.g:257:29: ( A | I | U )?
                    int alt10=2;
                    int LA10_0 = input.LA(1);

                    if ( (LA10_0==A) ) {
                        alt10=1;
                    }
                    else if ( (LA10_0==I||LA10_0==U) ) {
                        alt10=1;
                    }
                    switch (alt10) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:
                            {
                            set52=(Token)input.LT(1);
                            if ( input.LA(1)==A||input.LA(1)==I||input.LA(1)==U ) {
                                input.consume();
                                adaptor.addChild(root_0, adaptor.create(set52));
                                errorRecovery=false;
                            }
                            else {
                                MismatchedSetException mse =
                                    new MismatchedSetException(null,input);
                                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_hanakat_c1455);    throw mse;
                            }


                            }
                            break;

                    }


                    }
                    break;
                case 2 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:258:4: HANAKAT ( TONE )? c
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    HANAKAT53=(Token)input.LT(1);
                    match(input,HANAKAT,FOLLOW_HANAKAT_in_hanakat_c1471); 
                    HANAKAT53_tree = (CommonTree)adaptor.create(HANAKAT53);
                    adaptor.addChild(root_0, HANAKAT53_tree);

                    // /home/arthit/projects/siit-commons/src/TCC.g:258:12: ( TONE )?
                    int alt11=2;
                    int LA11_0 = input.LA(1);

                    if ( (LA11_0==TONE) ) {
                        alt11=1;
                    }
                    switch (alt11) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:258:12: TONE
                            {
                            TONE54=(Token)input.LT(1);
                            match(input,TONE,FOLLOW_TONE_in_hanakat_c1473); 
                            TONE54_tree = (CommonTree)adaptor.create(TONE54);
                            adaptor.addChild(root_0, TONE54_tree);


                            }
                            break;

                    }

                    pushFollow(FOLLOW_c_in_hanakat_c1476);
                    c55=c();
                    _fsp--;

                    adaptor.addChild(root_0, c55.getTree());

                    }
                    break;
                case 3 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:259:4: HANAKAT ( TONE )?
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    HANAKAT56=(Token)input.LT(1);
                    match(input,HANAKAT,FOLLOW_HANAKAT_in_hanakat_c1481); 
                    HANAKAT56_tree = (CommonTree)adaptor.create(HANAKAT56);
                    adaptor.addChild(root_0, HANAKAT56_tree);

                    // /home/arthit/projects/siit-commons/src/TCC.g:259:12: ( TONE )?
                    int alt12=2;
                    int LA12_0 = input.LA(1);

                    if ( (LA12_0==TONE) ) {
                        alt12=1;
                    }
                    switch (alt12) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:259:12: TONE
                            {
                            TONE57=(Token)input.LT(1);
                            match(input,TONE,FOLLOW_TONE_in_hanakat_c1483); 
                            TONE57_tree = (CommonTree)adaptor.create(TONE57);
                            adaptor.addChild(root_0, TONE57_tree);


                            }
                            break;

                    }


                    }
                    break;

            }
            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end hanakat_c

    public static class e_opt_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start e_opt
    // /home/arthit/projects/siit-commons/src/TCC.g:261:1: e_opt : ( c ( TONE )? AA A | ( TONE )? AA ( A )? | ( TONE )? A | TAIKHU c );
    public final e_opt_return e_opt() throws RecognitionException {
        e_opt_return retval = new e_opt_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token TONE59=null;
        Token AA60=null;
        Token A61=null;
        Token TONE62=null;
        Token AA63=null;
        Token A64=null;
        Token TONE65=null;
        Token A66=null;
        Token TAIKHU67=null;
        c_return c58 = null;

        c_return c68 = null;


        CommonTree TONE59_tree=null;
        CommonTree AA60_tree=null;
        CommonTree A61_tree=null;
        CommonTree TONE62_tree=null;
        CommonTree AA63_tree=null;
        CommonTree A64_tree=null;
        CommonTree TONE65_tree=null;
        CommonTree A66_tree=null;
        CommonTree TAIKHU67_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:261:7: ( c ( TONE )? AA A | ( TONE )? AA ( A )? | ( TONE )? A | TAIKHU c )
            int alt18=4;
            switch ( input.LA(1) ) {
            case KAI:
            case KHAI:
            case KHUAT:
            case KHWAI:
            case KHON:
            case RAKHANG:
            case NGU:
            case CHAN:
            case CHING:
            case CHANG:
            case SO:
            case CHOE:
            case YING:
            case CHADA:
            case PATAK:
            case THAN:
            case NANGMONTHO:
            case PHUTHAO:
            case NEN:
            case DEK:
            case TAO:
            case THUNG:
            case THAHAN:
            case THONG:
            case NU:
            case BAIMAI:
            case PLA:
            case PHUNG:
            case FA:
            case PHAN:
            case FAN:
            case SAMPHAO:
            case MA:
            case YAK:
            case RUA:
            case LING:
            case WAEN:
            case SALA:
            case RUSI:
            case SUA:
            case HIP:
            case CHULA:
            case ANG:
            case NOKHUK:
                {
                alt18=1;
                }
                break;
            case TONE:
                {
                int LA18_2 = input.LA(2);

                if ( (LA18_2==A) ) {
                    alt18=3;
                }
                else if ( (LA18_2==AA) ) {
                    alt18=2;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("261:1: e_opt : ( c ( TONE )? AA A | ( TONE )? AA ( A )? | ( TONE )? A | TAIKHU c );", 18, 2, input);

                    throw nvae;
                }
                }
                break;
            case AA:
                {
                alt18=2;
                }
                break;
            case A:
                {
                alt18=3;
                }
                break;
            case TAIKHU:
                {
                alt18=4;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("261:1: e_opt : ( c ( TONE )? AA A | ( TONE )? AA ( A )? | ( TONE )? A | TAIKHU c );", 18, 0, input);

                throw nvae;
            }

            switch (alt18) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:261:9: c ( TONE )? AA A
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    pushFollow(FOLLOW_c_in_e_opt1493);
                    c58=c();
                    _fsp--;

                    adaptor.addChild(root_0, c58.getTree());
                    // /home/arthit/projects/siit-commons/src/TCC.g:261:11: ( TONE )?
                    int alt14=2;
                    int LA14_0 = input.LA(1);

                    if ( (LA14_0==TONE) ) {
                        alt14=1;
                    }
                    switch (alt14) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:261:11: TONE
                            {
                            TONE59=(Token)input.LT(1);
                            match(input,TONE,FOLLOW_TONE_in_e_opt1495); 
                            TONE59_tree = (CommonTree)adaptor.create(TONE59);
                            adaptor.addChild(root_0, TONE59_tree);


                            }
                            break;

                    }

                    AA60=(Token)input.LT(1);
                    match(input,AA,FOLLOW_AA_in_e_opt1498); 
                    AA60_tree = (CommonTree)adaptor.create(AA60);
                    adaptor.addChild(root_0, AA60_tree);

                    A61=(Token)input.LT(1);
                    match(input,A,FOLLOW_A_in_e_opt1500); 
                    A61_tree = (CommonTree)adaptor.create(A61);
                    adaptor.addChild(root_0, A61_tree);


                    }
                    break;
                case 2 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:262:4: ( TONE )? AA ( A )?
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    // /home/arthit/projects/siit-commons/src/TCC.g:262:4: ( TONE )?
                    int alt15=2;
                    int LA15_0 = input.LA(1);

                    if ( (LA15_0==TONE) ) {
                        alt15=1;
                    }
                    switch (alt15) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:262:4: TONE
                            {
                            TONE62=(Token)input.LT(1);
                            match(input,TONE,FOLLOW_TONE_in_e_opt1505); 
                            TONE62_tree = (CommonTree)adaptor.create(TONE62);
                            adaptor.addChild(root_0, TONE62_tree);


                            }
                            break;

                    }

                    AA63=(Token)input.LT(1);
                    match(input,AA,FOLLOW_AA_in_e_opt1508); 
                    AA63_tree = (CommonTree)adaptor.create(AA63);
                    adaptor.addChild(root_0, AA63_tree);

                    // /home/arthit/projects/siit-commons/src/TCC.g:262:13: ( A )?
                    int alt16=2;
                    int LA16_0 = input.LA(1);

                    if ( (LA16_0==A) ) {
                        alt16=1;
                    }
                    switch (alt16) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:262:13: A
                            {
                            A64=(Token)input.LT(1);
                            match(input,A,FOLLOW_A_in_e_opt1510); 
                            A64_tree = (CommonTree)adaptor.create(A64);
                            adaptor.addChild(root_0, A64_tree);


                            }
                            break;

                    }


                    }
                    break;
                case 3 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:263:4: ( TONE )? A
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    // /home/arthit/projects/siit-commons/src/TCC.g:263:4: ( TONE )?
                    int alt17=2;
                    int LA17_0 = input.LA(1);

                    if ( (LA17_0==TONE) ) {
                        alt17=1;
                    }
                    switch (alt17) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:263:4: TONE
                            {
                            TONE65=(Token)input.LT(1);
                            match(input,TONE,FOLLOW_TONE_in_e_opt1516); 
                            TONE65_tree = (CommonTree)adaptor.create(TONE65);
                            adaptor.addChild(root_0, TONE65_tree);


                            }
                            break;

                    }

                    A66=(Token)input.LT(1);
                    match(input,A,FOLLOW_A_in_e_opt1519); 
                    A66_tree = (CommonTree)adaptor.create(A66);
                    adaptor.addChild(root_0, A66_tree);


                    }
                    break;
                case 4 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:264:4: TAIKHU c
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    TAIKHU67=(Token)input.LT(1);
                    match(input,TAIKHU,FOLLOW_TAIKHU_in_e_opt1524); 
                    TAIKHU67_tree = (CommonTree)adaptor.create(TAIKHU67);
                    adaptor.addChild(root_0, TAIKHU67_tree);

                    pushFollow(FOLLOW_c_in_e_opt1526);
                    c68=c();
                    _fsp--;

                    adaptor.addChild(root_0, c68.getTree());

                    }
                    break;

            }
            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end e_opt

    public static class e_i_opt_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start e_i_opt
    // /home/arthit/projects/siit-commons/src/TCC.g:266:1: e_i_opt : ( TONE )? ( c kill )? c ;
    public final e_i_opt_return e_i_opt() throws RecognitionException {
        e_i_opt_return retval = new e_i_opt_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token TONE69=null;
        c_return c70 = null;

        kill_return kill71 = null;

        c_return c72 = null;


        CommonTree TONE69_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:266:9: ( ( TONE )? ( c kill )? c )
            // /home/arthit/projects/siit-commons/src/TCC.g:266:11: ( TONE )? ( c kill )? c
            {
            root_0 = (CommonTree)adaptor.nil();

            // /home/arthit/projects/siit-commons/src/TCC.g:266:11: ( TONE )?
            int alt19=2;
            int LA19_0 = input.LA(1);

            if ( (LA19_0==TONE) ) {
                alt19=1;
            }
            switch (alt19) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:266:11: TONE
                    {
                    TONE69=(Token)input.LT(1);
                    match(input,TONE,FOLLOW_TONE_in_e_i_opt1535); 
                    TONE69_tree = (CommonTree)adaptor.create(TONE69);
                    adaptor.addChild(root_0, TONE69_tree);


                    }
                    break;

            }

            // /home/arthit/projects/siit-commons/src/TCC.g:266:17: ( c kill )?
            int alt20=2;
            int LA20_0 = input.LA(1);

            if ( ((LA20_0>=KAI && LA20_0<=NOKHUK)) ) {
                int LA20_1 = input.LA(2);

                if ( (LA20_1==THANTHAKHAT||LA20_1==YAMAKKAN) ) {
                    int LA20_2 = input.LA(3);

                    if ( ((LA20_2>=KAI && LA20_2<=NOKHUK)) ) {
                        alt20=1;
                    }
                }
            }
            switch (alt20) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:266:18: c kill
                    {
                    pushFollow(FOLLOW_c_in_e_i_opt1539);
                    c70=c();
                    _fsp--;

                    adaptor.addChild(root_0, c70.getTree());
                    pushFollow(FOLLOW_kill_in_e_i_opt1541);
                    kill71=kill();
                    _fsp--;

                    adaptor.addChild(root_0, kill71.getTree());

                    }
                    break;

            }

            pushFollow(FOLLOW_c_in_e_i_opt1545);
            c72=c();
            _fsp--;

            adaptor.addChild(root_0, c72.getTree());

            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end e_i_opt

    public static class e_ii_opt_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start e_ii_opt
    // /home/arthit/projects/siit-commons/src/TCC.g:268:1: e_ii_opt : ( TONE )? YAK ( A )? ;
    public final e_ii_opt_return e_ii_opt() throws RecognitionException {
        e_ii_opt_return retval = new e_ii_opt_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token TONE73=null;
        Token YAK74=null;
        Token A75=null;

        CommonTree TONE73_tree=null;
        CommonTree YAK74_tree=null;
        CommonTree A75_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:268:10: ( ( TONE )? YAK ( A )? )
            // /home/arthit/projects/siit-commons/src/TCC.g:268:12: ( TONE )? YAK ( A )?
            {
            root_0 = (CommonTree)adaptor.nil();

            // /home/arthit/projects/siit-commons/src/TCC.g:268:12: ( TONE )?
            int alt21=2;
            int LA21_0 = input.LA(1);

            if ( (LA21_0==TONE) ) {
                alt21=1;
            }
            switch (alt21) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:268:12: TONE
                    {
                    TONE73=(Token)input.LT(1);
                    match(input,TONE,FOLLOW_TONE_in_e_ii_opt1554); 
                    TONE73_tree = (CommonTree)adaptor.create(TONE73);
                    adaptor.addChild(root_0, TONE73_tree);


                    }
                    break;

            }

            YAK74=(Token)input.LT(1);
            match(input,YAK,FOLLOW_YAK_in_e_ii_opt1557); 
            YAK74_tree = (CommonTree)adaptor.create(YAK74);
            adaptor.addChild(root_0, YAK74_tree);

            // /home/arthit/projects/siit-commons/src/TCC.g:268:22: ( A )?
            int alt22=2;
            int LA22_0 = input.LA(1);

            if ( (LA22_0==A) ) {
                alt22=1;
            }
            switch (alt22) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:268:22: A
                    {
                    A75=(Token)input.LT(1);
                    match(input,A,FOLLOW_A_in_e_ii_opt1559); 
                    A75_tree = (CommonTree)adaptor.create(A75);
                    adaptor.addChild(root_0, A75_tree);


                    }
                    break;

            }


            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end e_ii_opt

    public static class e_uee_opt_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start e_uee_opt
    // /home/arthit/projects/siit-commons/src/TCC.g:270:1: e_uee_opt : ( TONE )? ANG ( A )? ;
    public final e_uee_opt_return e_uee_opt() throws RecognitionException {
        e_uee_opt_return retval = new e_uee_opt_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token TONE76=null;
        Token ANG77=null;
        Token A78=null;

        CommonTree TONE76_tree=null;
        CommonTree ANG77_tree=null;
        CommonTree A78_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:271:2: ( ( TONE )? ANG ( A )? )
            // /home/arthit/projects/siit-commons/src/TCC.g:271:4: ( TONE )? ANG ( A )?
            {
            root_0 = (CommonTree)adaptor.nil();

            // /home/arthit/projects/siit-commons/src/TCC.g:271:4: ( TONE )?
            int alt23=2;
            int LA23_0 = input.LA(1);

            if ( (LA23_0==TONE) ) {
                alt23=1;
            }
            switch (alt23) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:271:4: TONE
                    {
                    TONE76=(Token)input.LT(1);
                    match(input,TONE,FOLLOW_TONE_in_e_uee_opt1570); 
                    TONE76_tree = (CommonTree)adaptor.create(TONE76);
                    adaptor.addChild(root_0, TONE76_tree);


                    }
                    break;

            }

            ANG77=(Token)input.LT(1);
            match(input,ANG,FOLLOW_ANG_in_e_uee_opt1573); 
            ANG77_tree = (CommonTree)adaptor.create(ANG77);
            adaptor.addChild(root_0, ANG77_tree);

            // /home/arthit/projects/siit-commons/src/TCC.g:271:14: ( A )?
            int alt24=2;
            int LA24_0 = input.LA(1);

            if ( (LA24_0==A) ) {
                alt24=1;
            }
            switch (alt24) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:271:14: A
                    {
                    A78=(Token)input.LT(1);
                    match(input,A,FOLLOW_A_in_e_uee_opt1575); 
                    A78_tree = (CommonTree)adaptor.create(A78);
                    adaptor.addChild(root_0, A78_tree);


                    }
                    break;

            }


            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end e_uee_opt

    public static class ae_opt_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start ae_opt
    // /home/arthit/projects/siit-commons/src/TCC.g:273:1: ae_opt : ( ( TONE )? A | TAIKHU c );
    public final ae_opt_return ae_opt() throws RecognitionException {
        ae_opt_return retval = new ae_opt_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token TONE79=null;
        Token A80=null;
        Token TAIKHU81=null;
        c_return c82 = null;


        CommonTree TONE79_tree=null;
        CommonTree A80_tree=null;
        CommonTree TAIKHU81_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:273:8: ( ( TONE )? A | TAIKHU c )
            int alt26=2;
            int LA26_0 = input.LA(1);

            if ( ((LA26_0>=TONE && LA26_0<=A)) ) {
                alt26=1;
            }
            else if ( (LA26_0==TAIKHU) ) {
                alt26=2;
            }
            else {
                NoViableAltException nvae =
                    new NoViableAltException("273:1: ae_opt : ( ( TONE )? A | TAIKHU c );", 26, 0, input);

                throw nvae;
            }
            switch (alt26) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:273:10: ( TONE )? A
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    // /home/arthit/projects/siit-commons/src/TCC.g:273:10: ( TONE )?
                    int alt25=2;
                    int LA25_0 = input.LA(1);

                    if ( (LA25_0==TONE) ) {
                        alt25=1;
                    }
                    switch (alt25) {
                        case 1 :
                            // /home/arthit/projects/siit-commons/src/TCC.g:273:10: TONE
                            {
                            TONE79=(Token)input.LT(1);
                            match(input,TONE,FOLLOW_TONE_in_ae_opt1585); 
                            TONE79_tree = (CommonTree)adaptor.create(TONE79);
                            adaptor.addChild(root_0, TONE79_tree);


                            }
                            break;

                    }

                    A80=(Token)input.LT(1);
                    match(input,A,FOLLOW_A_in_ae_opt1588); 
                    A80_tree = (CommonTree)adaptor.create(A80);
                    adaptor.addChild(root_0, A80_tree);


                    }
                    break;
                case 2 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:274:4: TAIKHU c
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    TAIKHU81=(Token)input.LT(1);
                    match(input,TAIKHU,FOLLOW_TAIKHU_in_ae_opt1593); 
                    TAIKHU81_tree = (CommonTree)adaptor.create(TAIKHU81);
                    adaptor.addChild(root_0, TAIKHU81_tree);

                    pushFollow(FOLLOW_c_in_ae_opt1595);
                    c82=c();
                    _fsp--;

                    adaptor.addChild(root_0, c82.getTree());

                    }
                    break;

            }
            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end ae_opt

    public static class o_opt_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start o_opt
    // /home/arthit/projects/siit-commons/src/TCC.g:276:1: o_opt : ( TONE )? A ;
    public final o_opt_return o_opt() throws RecognitionException {
        o_opt_return retval = new o_opt_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token TONE83=null;
        Token A84=null;

        CommonTree TONE83_tree=null;
        CommonTree A84_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:276:7: ( ( TONE )? A )
            // /home/arthit/projects/siit-commons/src/TCC.g:276:9: ( TONE )? A
            {
            root_0 = (CommonTree)adaptor.nil();

            // /home/arthit/projects/siit-commons/src/TCC.g:276:9: ( TONE )?
            int alt27=2;
            int LA27_0 = input.LA(1);

            if ( (LA27_0==TONE) ) {
                alt27=1;
            }
            switch (alt27) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:276:9: TONE
                    {
                    TONE83=(Token)input.LT(1);
                    match(input,TONE,FOLLOW_TONE_in_o_opt1604); 
                    TONE83_tree = (CommonTree)adaptor.create(TONE83);
                    adaptor.addChild(root_0, TONE83_tree);


                    }
                    break;

            }

            A84=(Token)input.LT(1);
            match(input,A,FOLLOW_A_in_o_opt1607); 
            A84_tree = (CommonTree)adaptor.create(A84);
            adaptor.addChild(root_0, A84_tree);


            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end o_opt

    public static class c_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start c
    // /home/arthit/projects/siit-commons/src/TCC.g:278:1: c : ( KAI | KHAI | KHUAT | KHWAI | KHON | RAKHANG | NGU | CHAN | CHING | CHANG | SO | CHOE | YING | CHADA | PATAK | THAN | NANGMONTHO | PHUTHAO | NEN | DEK | TAO | THUNG | THAHAN | THONG | NU | BAIMAI | PLA | PHUNG | FA | PHAN | FAN | SAMPHAO | MA | YAK | RUA | LING | WAEN | SALA | RUSI | SUA | HIP | CHULA | ANG | NOKHUK );
    public final c_return c() throws RecognitionException {
        c_return retval = new c_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token set85=null;

        CommonTree set85_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:278:3: ( KAI | KHAI | KHUAT | KHWAI | KHON | RAKHANG | NGU | CHAN | CHING | CHANG | SO | CHOE | YING | CHADA | PATAK | THAN | NANGMONTHO | PHUTHAO | NEN | DEK | TAO | THUNG | THAHAN | THONG | NU | BAIMAI | PLA | PHUNG | FA | PHAN | FAN | SAMPHAO | MA | YAK | RUA | LING | WAEN | SALA | RUSI | SUA | HIP | CHULA | ANG | NOKHUK )
            // /home/arthit/projects/siit-commons/src/TCC.g:
            {
            root_0 = (CommonTree)adaptor.nil();

            set85=(Token)input.LT(1);
            if ( (input.LA(1)>=KAI && input.LA(1)<=NOKHUK) ) {
                input.consume();
                adaptor.addChild(root_0, adaptor.create(set85));
                errorRecovery=false;
            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_c0);    throw mse;
            }


            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end c

    public static class fv_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start fv
    // /home/arthit/projects/siit-commons/src/TCC.g:288:1: fv : ( A | AA | AM | LAKKHANGYAO | NIKHAHIT AA );
    public final fv_return fv() throws RecognitionException {
        fv_return retval = new fv_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token A86=null;
        Token AA87=null;
        Token AM88=null;
        Token LAKKHANGYAO89=null;
        Token NIKHAHIT90=null;
        Token AA91=null;

        CommonTree A86_tree=null;
        CommonTree AA87_tree=null;
        CommonTree AM88_tree=null;
        CommonTree LAKKHANGYAO89_tree=null;
        CommonTree NIKHAHIT90_tree=null;
        CommonTree AA91_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:288:4: ( A | AA | AM | LAKKHANGYAO | NIKHAHIT AA )
            int alt28=5;
            switch ( input.LA(1) ) {
            case A:
                {
                alt28=1;
                }
                break;
            case AA:
                {
                alt28=2;
                }
                break;
            case AM:
                {
                alt28=3;
                }
                break;
            case LAKKHANGYAO:
                {
                alt28=4;
                }
                break;
            case NIKHAHIT:
                {
                alt28=5;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("288:1: fv : ( A | AA | AM | LAKKHANGYAO | NIKHAHIT AA );", 28, 0, input);

                throw nvae;
            }

            switch (alt28) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:288:6: A
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    A86=(Token)input.LT(1);
                    match(input,A,FOLLOW_A_in_fv1805); 
                    A86_tree = (CommonTree)adaptor.create(A86);
                    adaptor.addChild(root_0, A86_tree);


                    }
                    break;
                case 2 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:288:10: AA
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    AA87=(Token)input.LT(1);
                    match(input,AA,FOLLOW_AA_in_fv1809); 
                    AA87_tree = (CommonTree)adaptor.create(AA87);
                    adaptor.addChild(root_0, AA87_tree);


                    }
                    break;
                case 3 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:288:15: AM
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    AM88=(Token)input.LT(1);
                    match(input,AM,FOLLOW_AM_in_fv1813); 
                    AM88_tree = (CommonTree)adaptor.create(AM88);
                    adaptor.addChild(root_0, AM88_tree);


                    }
                    break;
                case 4 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:289:4: LAKKHANGYAO
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    LAKKHANGYAO89=(Token)input.LT(1);
                    match(input,LAKKHANGYAO,FOLLOW_LAKKHANGYAO_in_fv1818); 
                    LAKKHANGYAO89_tree = (CommonTree)adaptor.create(LAKKHANGYAO89);
                    adaptor.addChild(root_0, LAKKHANGYAO89_tree);


                    }
                    break;
                case 5 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:290:4: NIKHAHIT AA
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    NIKHAHIT90=(Token)input.LT(1);
                    match(input,NIKHAHIT,FOLLOW_NIKHAHIT_in_fv1823); 
                    NIKHAHIT90_tree = (CommonTree)adaptor.create(NIKHAHIT90);
                    adaptor.addChild(root_0, NIKHAHIT90_tree);

                    AA91=(Token)input.LT(1);
                    match(input,AA,FOLLOW_AA_in_fv1825); 
                    AA91_tree = (CommonTree)adaptor.create(AA91);
                    adaptor.addChild(root_0, AA91_tree);


                    }
                    break;

            }
            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end fv

    public static class lv_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start lv
    // /home/arthit/projects/siit-commons/src/TCC.g:292:1: lv : ( E | AE | O | MUAN | MALAI );
    public final lv_return lv() throws RecognitionException {
        lv_return retval = new lv_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token set92=null;

        CommonTree set92_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:292:4: ( E | AE | O | MUAN | MALAI )
            // /home/arthit/projects/siit-commons/src/TCC.g:
            {
            root_0 = (CommonTree)adaptor.nil();

            set92=(Token)input.LT(1);
            if ( (input.LA(1)>=E && input.LA(1)<=MALAI) ) {
                input.consume();
                adaptor.addChild(root_0, adaptor.create(set92));
                errorRecovery=false;
            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_lv0);    throw mse;
            }


            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end lv

    public static class abv_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start abv
    // /home/arthit/projects/siit-commons/src/TCC.g:294:1: abv : ( I | II | UE | UEE | U | UU | TAIKHU | NIKHAHIT | PHINTHU );
    public final abv_return abv() throws RecognitionException {
        abv_return retval = new abv_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token set93=null;

        CommonTree set93_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:294:5: ( I | II | UE | UEE | U | UU | TAIKHU | NIKHAHIT | PHINTHU )
            // /home/arthit/projects/siit-commons/src/TCC.g:
            {
            root_0 = (CommonTree)adaptor.nil();

            set93=(Token)input.LT(1);
            if ( (input.LA(1)>=I && input.LA(1)<=UU)||input.LA(1)==PHINTHU||input.LA(1)==TAIKHU||input.LA(1)==NIKHAHIT ) {
                input.consume();
                adaptor.addChild(root_0, adaptor.create(set93));
                errorRecovery=false;
            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_abv0);    throw mse;
            }


            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end abv

    public static class sv_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start sv
    // /home/arthit/projects/siit-commons/src/TCC.g:296:1: sv : ( RU | LU ) ( LAKKHANGYAO )? ;
    public final sv_return sv() throws RecognitionException {
        sv_return retval = new sv_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token set94=null;
        Token LAKKHANGYAO95=null;

        CommonTree set94_tree=null;
        CommonTree LAKKHANGYAO95_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:296:4: ( ( RU | LU ) ( LAKKHANGYAO )? )
            // /home/arthit/projects/siit-commons/src/TCC.g:296:6: ( RU | LU ) ( LAKKHANGYAO )?
            {
            root_0 = (CommonTree)adaptor.nil();

            set94=(Token)input.LT(1);
            if ( (input.LA(1)>=RU && input.LA(1)<=LU) ) {
                input.consume();
                adaptor.addChild(root_0, adaptor.create(set94));
                errorRecovery=false;
            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_sv1902);    throw mse;
            }

            // /home/arthit/projects/siit-commons/src/TCC.g:296:16: ( LAKKHANGYAO )?
            int alt29=2;
            int LA29_0 = input.LA(1);

            if ( (LA29_0==LAKKHANGYAO) ) {
                alt29=1;
            }
            switch (alt29) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:296:16: LAKKHANGYAO
                    {
                    LAKKHANGYAO95=(Token)input.LT(1);
                    match(input,LAKKHANGYAO,FOLLOW_LAKKHANGYAO_in_sv1910); 
                    LAKKHANGYAO95_tree = (CommonTree)adaptor.create(LAKKHANGYAO95);
                    adaptor.addChild(root_0, LAKKHANGYAO95_tree);


                    }
                    break;

            }


            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end sv

    public static class kill_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start kill
    // /home/arthit/projects/siit-commons/src/TCC.g:298:1: kill : ( THANTHAKHAT | YAMAKKAN );
    public final kill_return kill() throws RecognitionException {
        kill_return retval = new kill_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token set96=null;

        CommonTree set96_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:298:6: ( THANTHAKHAT | YAMAKKAN )
            // /home/arthit/projects/siit-commons/src/TCC.g:
            {
            root_0 = (CommonTree)adaptor.nil();

            set96=(Token)input.LT(1);
            if ( input.LA(1)==THANTHAKHAT||input.LA(1)==YAMAKKAN ) {
                input.consume();
                adaptor.addChild(root_0, adaptor.create(set96));
                errorRecovery=false;
            }
            else {
                MismatchedSetException mse =
                    new MismatchedSetException(null,input);
                recoverFromMismatchedSet(input,mse,FOLLOW_set_in_kill0);    throw mse;
            }


            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end kill

    public static class tsymbol_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start tsymbol
    // /home/arthit/projects/siit-commons/src/TCC.g:301:1: tsymbol : ( FONGMAN | ANGKHANKHU | KHOMUT | paiyanyai | PAIYANNOI | YAMOK );
    public final tsymbol_return tsymbol() throws RecognitionException {
        tsymbol_return retval = new tsymbol_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token FONGMAN97=null;
        Token ANGKHANKHU98=null;
        Token KHOMUT99=null;
        Token PAIYANNOI101=null;
        Token YAMOK102=null;
        paiyanyai_return paiyanyai100 = null;


        CommonTree FONGMAN97_tree=null;
        CommonTree ANGKHANKHU98_tree=null;
        CommonTree KHOMUT99_tree=null;
        CommonTree PAIYANNOI101_tree=null;
        CommonTree YAMOK102_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:301:9: ( FONGMAN | ANGKHANKHU | KHOMUT | paiyanyai | PAIYANNOI | YAMOK )
            int alt30=6;
            switch ( input.LA(1) ) {
            case FONGMAN:
                {
                alt30=1;
                }
                break;
            case ANGKHANKHU:
                {
                alt30=2;
                }
                break;
            case KHOMUT:
                {
                alt30=3;
                }
                break;
            case PAIYANNOI:
                {
                int LA30_4 = input.LA(2);

                if ( (LA30_4==LING) ) {
                    int LA30_6 = input.LA(3);

                    if ( (LA30_6==PAIYANNOI) ) {
                        alt30=4;
                    }
                    else if ( (LA30_6==EOF||(LA30_6>=TONE && LA30_6<=LU)||(LA30_6>=PHINTHU && LA30_6<=NOKHUK)) ) {
                        alt30=5;
                    }
                    else {
                        NoViableAltException nvae =
                            new NoViableAltException("301:1: tsymbol : ( FONGMAN | ANGKHANKHU | KHOMUT | paiyanyai | PAIYANNOI | YAMOK );", 30, 6, input);

                        throw nvae;
                    }
                }
                else if ( (LA30_4==EOF||(LA30_4>=A && LA30_4<=RUA)||(LA30_4>=WAEN && LA30_4<=NOKHUK)) ) {
                    alt30=5;
                }
                else {
                    NoViableAltException nvae =
                        new NoViableAltException("301:1: tsymbol : ( FONGMAN | ANGKHANKHU | KHOMUT | paiyanyai | PAIYANNOI | YAMOK );", 30, 4, input);

                    throw nvae;
                }
                }
                break;
            case YAMOK:
                {
                alt30=6;
                }
                break;
            default:
                NoViableAltException nvae =
                    new NoViableAltException("301:1: tsymbol : ( FONGMAN | ANGKHANKHU | KHOMUT | paiyanyai | PAIYANNOI | YAMOK );", 30, 0, input);

                throw nvae;
            }

            switch (alt30) {
                case 1 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:301:11: FONGMAN
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    FONGMAN97=(Token)input.LT(1);
                    match(input,FONGMAN,FOLLOW_FONGMAN_in_tsymbol1934); 
                    FONGMAN97_tree = (CommonTree)adaptor.create(FONGMAN97);
                    adaptor.addChild(root_0, FONGMAN97_tree);


                    }
                    break;
                case 2 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:302:4: ANGKHANKHU
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    ANGKHANKHU98=(Token)input.LT(1);
                    match(input,ANGKHANKHU,FOLLOW_ANGKHANKHU_in_tsymbol1939); 
                    ANGKHANKHU98_tree = (CommonTree)adaptor.create(ANGKHANKHU98);
                    adaptor.addChild(root_0, ANGKHANKHU98_tree);


                    }
                    break;
                case 3 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:303:4: KHOMUT
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    KHOMUT99=(Token)input.LT(1);
                    match(input,KHOMUT,FOLLOW_KHOMUT_in_tsymbol1944); 
                    KHOMUT99_tree = (CommonTree)adaptor.create(KHOMUT99);
                    adaptor.addChild(root_0, KHOMUT99_tree);


                    }
                    break;
                case 4 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:304:4: paiyanyai
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    pushFollow(FOLLOW_paiyanyai_in_tsymbol1949);
                    paiyanyai100=paiyanyai();
                    _fsp--;

                    adaptor.addChild(root_0, paiyanyai100.getTree());

                    }
                    break;
                case 5 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:305:4: PAIYANNOI
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    PAIYANNOI101=(Token)input.LT(1);
                    match(input,PAIYANNOI,FOLLOW_PAIYANNOI_in_tsymbol1954); 
                    PAIYANNOI101_tree = (CommonTree)adaptor.create(PAIYANNOI101);
                    adaptor.addChild(root_0, PAIYANNOI101_tree);


                    }
                    break;
                case 6 :
                    // /home/arthit/projects/siit-commons/src/TCC.g:306:4: YAMOK
                    {
                    root_0 = (CommonTree)adaptor.nil();

                    YAMOK102=(Token)input.LT(1);
                    match(input,YAMOK,FOLLOW_YAMOK_in_tsymbol1959); 
                    YAMOK102_tree = (CommonTree)adaptor.create(YAMOK102);
                    adaptor.addChild(root_0, YAMOK102_tree);


                    }
                    break;

            }
            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end tsymbol

    public static class paiyanyai_return extends ParserRuleReturnScope {
        CommonTree tree;
        public Object getTree() { return tree; }
    };

    // $ANTLR start paiyanyai
    // /home/arthit/projects/siit-commons/src/TCC.g:308:1: paiyanyai : PAIYANNOI LING PAIYANNOI ;
    public final paiyanyai_return paiyanyai() throws RecognitionException {
        paiyanyai_return retval = new paiyanyai_return();
        retval.start = input.LT(1);

        CommonTree root_0 = null;

        Token PAIYANNOI103=null;
        Token LING104=null;
        Token PAIYANNOI105=null;

        CommonTree PAIYANNOI103_tree=null;
        CommonTree LING104_tree=null;
        CommonTree PAIYANNOI105_tree=null;

        try {
            // /home/arthit/projects/siit-commons/src/TCC.g:308:11: ( PAIYANNOI LING PAIYANNOI )
            // /home/arthit/projects/siit-commons/src/TCC.g:308:13: PAIYANNOI LING PAIYANNOI
            {
            root_0 = (CommonTree)adaptor.nil();

            PAIYANNOI103=(Token)input.LT(1);
            match(input,PAIYANNOI,FOLLOW_PAIYANNOI_in_paiyanyai1968); 
            PAIYANNOI103_tree = (CommonTree)adaptor.create(PAIYANNOI103);
            adaptor.addChild(root_0, PAIYANNOI103_tree);

            LING104=(Token)input.LT(1);
            match(input,LING,FOLLOW_LING_in_paiyanyai1970); 
            LING104_tree = (CommonTree)adaptor.create(LING104);
            adaptor.addChild(root_0, LING104_tree);

            PAIYANNOI105=(Token)input.LT(1);
            match(input,PAIYANNOI,FOLLOW_PAIYANNOI_in_paiyanyai1972); 
            PAIYANNOI105_tree = (CommonTree)adaptor.create(PAIYANNOI105);
            adaptor.addChild(root_0, PAIYANNOI105_tree);


            }

            retval.stop = input.LT(-1);

                retval.tree = (CommonTree)adaptor.rulePostProcessing(root_0);
                adaptor.setTokenBoundaries(retval.tree, retval.start, retval.stop);

        }
        catch (RecognitionException re) {
            reportError(re);
            recover(input,re);
        }
        finally {
        }
        return retval;
    }
    // $ANTLR end paiyanyai


 

    public static final BitSet FOLLOW_tcc_in_s976 = new BitSet(new long[]{0xFFFFFFFFFFFC0002L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_abtcc_in_s980 = new BitSet(new long[]{0xFFFFFFFFFFFC0002L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_tcc1001 = new BitSet(new long[]{0x000007A00FC00000L});
    public static final BitSet FOLLOW_abv_in_tcc1003 = new BitSet(new long[]{0x0000050000000000L});
    public static final BitSet FOLLOW_kill_in_tcc1006 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_c_in_tcc1028 = new BitSet(new long[]{0x000002A00FC00000L});
    public static final BitSet FOLLOW_abv_in_tcc1030 = new BitSet(new long[]{0x0000000000020002L});
    public static final BitSet FOLLOW_TONE_in_tcc1032 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_c_in_tcc1055 = new BitSet(new long[]{0x0000000C00000000L});
    public static final BitSet FOLLOW_sv_in_tcc1057 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_c_in_tcc1076 = new BitSet(new long[]{0x0000008000000000L});
    public static final BitSet FOLLOW_TAIKHU_in_tcc1078 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_c_in_tcc1097 = new BitSet(new long[]{0x0000000000080000L});
    public static final BitSet FOLLOW_hanakat_c_in_tcc1099 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_c_in_tcc1119 = new BitSet(new long[]{0x0000020200360002L});
    public static final BitSet FOLLOW_TONE_in_tcc1121 = new BitSet(new long[]{0x0000020200340002L});
    public static final BitSet FOLLOW_fv_in_tcc1124 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_lv_in_tcc1148 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_tcc1150 = new BitSet(new long[]{0x0000000000020002L});
    public static final BitSet FOLLOW_TONE_in_tcc1152 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_E_in_tcc1175 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_tcc1177 = new BitSet(new long[]{0x0000000000400000L});
    public static final BitSet FOLLOW_I_in_tcc1179 = new BitSet(new long[]{0xFFFFC00000020000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_e_i_opt_in_tcc1181 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_E_in_tcc1204 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_tcc1206 = new BitSet(new long[]{0x0000000000800000L});
    public static final BitSet FOLLOW_II_in_tcc1208 = new BitSet(new long[]{0x0000000000020000L,0x0000000000008000L});
    public static final BitSet FOLLOW_e_ii_opt_in_tcc1210 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_E_in_tcc1233 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_tcc1235 = new BitSet(new long[]{0x0000000002000000L});
    public static final BitSet FOLLOW_UEE_in_tcc1237 = new BitSet(new long[]{0x0000000000020000L,0x0000000001000000L});
    public static final BitSet FOLLOW_e_uee_opt_in_tcc1239 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_E_in_tcc1262 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_tcc1264 = new BitSet(new long[]{0xFFFFC08000160000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_e_opt_in_tcc1266 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_AE_in_tcc1287 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_tcc1289 = new BitSet(new long[]{0x0000008000060000L});
    public static final BitSet FOLLOW_ae_opt_in_tcc1291 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_O_in_tcc1312 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_tcc1314 = new BitSet(new long[]{0x0000000000060000L});
    public static final BitSet FOLLOW_o_opt_in_tcc1316 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_sv_in_tcc1337 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_tsymbol_in_tcc1354 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_fv_in_abtcc1377 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_lv_in_abtcc1390 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_abv_in_abtcc1403 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_hanakat_c_in_abtcc1416 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_kill_in_abtcc1429 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_HANAKAT_in_hanakat_c1448 = new BitSet(new long[]{0xFFFFC00000020000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_TONE_in_hanakat_c1450 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_hanakat_c1453 = new BitSet(new long[]{0x0000000004440002L});
    public static final BitSet FOLLOW_set_in_hanakat_c1455 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_HANAKAT_in_hanakat_c1471 = new BitSet(new long[]{0xFFFFC00000020000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_TONE_in_hanakat_c1473 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_hanakat_c1476 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_HANAKAT_in_hanakat_c1481 = new BitSet(new long[]{0x0000000000020002L});
    public static final BitSet FOLLOW_TONE_in_hanakat_c1483 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_c_in_e_opt1493 = new BitSet(new long[]{0x0000000000120000L});
    public static final BitSet FOLLOW_TONE_in_e_opt1495 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_AA_in_e_opt1498 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_A_in_e_opt1500 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TONE_in_e_opt1505 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_AA_in_e_opt1508 = new BitSet(new long[]{0x0000000000040002L});
    public static final BitSet FOLLOW_A_in_e_opt1510 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TONE_in_e_opt1516 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_A_in_e_opt1519 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TAIKHU_in_e_opt1524 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_e_opt1526 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TONE_in_e_i_opt1535 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_e_i_opt1539 = new BitSet(new long[]{0x0000050000000000L});
    public static final BitSet FOLLOW_kill_in_e_i_opt1541 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_e_i_opt1545 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TONE_in_e_ii_opt1554 = new BitSet(new long[]{0x0000000000000000L,0x0000000000008000L});
    public static final BitSet FOLLOW_YAK_in_e_ii_opt1557 = new BitSet(new long[]{0x0000000000040002L});
    public static final BitSet FOLLOW_A_in_e_ii_opt1559 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TONE_in_e_uee_opt1570 = new BitSet(new long[]{0x0000000000000000L,0x0000000001000000L});
    public static final BitSet FOLLOW_ANG_in_e_uee_opt1573 = new BitSet(new long[]{0x0000000000040002L});
    public static final BitSet FOLLOW_A_in_e_uee_opt1575 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TONE_in_ae_opt1585 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_A_in_ae_opt1588 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TAIKHU_in_ae_opt1593 = new BitSet(new long[]{0xFFFFC00000000000L,0x0000000003FFFFFFL});
    public static final BitSet FOLLOW_c_in_ae_opt1595 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_TONE_in_o_opt1604 = new BitSet(new long[]{0x0000000000040000L});
    public static final BitSet FOLLOW_A_in_o_opt1607 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_c0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_A_in_fv1805 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_AA_in_fv1809 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_AM_in_fv1813 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_LAKKHANGYAO_in_fv1818 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_NIKHAHIT_in_fv1823 = new BitSet(new long[]{0x0000000000100000L});
    public static final BitSet FOLLOW_AA_in_fv1825 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_lv0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_abv0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_sv1902 = new BitSet(new long[]{0x0000000200000002L});
    public static final BitSet FOLLOW_LAKKHANGYAO_in_sv1910 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_set_in_kill0 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_FONGMAN_in_tsymbol1934 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_ANGKHANKHU_in_tsymbol1939 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_KHOMUT_in_tsymbol1944 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_paiyanyai_in_tsymbol1949 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PAIYANNOI_in_tsymbol1954 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_YAMOK_in_tsymbol1959 = new BitSet(new long[]{0x0000000000000002L});
    public static final BitSet FOLLOW_PAIYANNOI_in_paiyanyai1968 = new BitSet(new long[]{0x0000000000000000L,0x0000000000020000L});
    public static final BitSet FOLLOW_LING_in_paiyanyai1970 = new BitSet(new long[]{0x0000001000000000L});
    public static final BitSet FOLLOW_PAIYANNOI_in_paiyanyai1972 = new BitSet(new long[]{0x0000000000000002L});

}